🇰🇷 한글 설명
QUIC 서버에서 초기 패킷의 채널 생성 실패 시 QRX 객체를 중복 해제(Double Free)하는 취약점이 발견되었습니다. 이로 인해 힙 손상이 발생하여 QUIC 서버 프로세스가 종료될 수 있으며, 이는 서비스 거부(DoS) 공격으로 이어질 수 있습니다.
💡 쉬운 설명
서버가 데이터를 처리하는 과정에서 이미 삭제한 메모리 공간을 한 번 더 삭제하려고 시도하는 오류입니다. 이 오류가 발생하면 서버 프로그램이 갑자기 꺼져버려 서비스를 이용할 수 없게 됩니다.
🇺🇸 원문 (English)
Issue summary: QUIC server may double free QRX (QUIC record layer RX) object
when channel creation fails for initial packet.
Impact summary: Double free leads to heap corruption, which typically results in
termination of QUIC server process, leading to Denial of Service. There is so
far no evidence that this double free is exploitable for remote code execution,
thus it is considered highly improbable.
CWE: CWE-415: Double Free
Description: In order to validate initial packet, OpenSSL QUIC stack default
packet handler (port_default_packet_handler()) creates a so-called QRX object.
If the initial packet validates successfully with QRX object, the default packet
handler proceeds to channel (connection object) creation. The QRX object used
for packet validation is passed to port_bind_channel(), so it becomes part of
the newly created connection. If port_bind_channel() fails, then it also frees
the QRX object. Once port_bind_channel() returns, the port_default_packet_handler()
detects the failure and proceeds to the error branch, where the same QRX object is
freed for the second time.
The failure in port_bind_channel() function can be induced with a relatively
low effort by a malformed (non RFC 9000 compliant) INITIAL packet. If the packet
carries DCID (destination connection ID) which is shorter than 8 bytes, then
port_bind_channel() jumps to the error path after ossl_quic_lcidm_enrol_odcid()
detects that the DCID has invalid length.
FIPS impact: no
The FIPS module is not affected, as the QUIC implementation is outside of
the OpenSSL FIPS module boundary.
📍 영향받는 시스템
OpenSSL QUIC 스택을 사용하는 시스템 (버전 미상)
⚔️ 공격 벡터
RFC 9000 표준을 준수하지 않는, 8바이트 미만의 DCID를 포함한 조작된 INITIAL 패킷 전송
🛡️ 대응 방법
OpenSSL 보안 패치 적용 및 QUIC 스택 업데이트
🔧 검증 코드
출력된 OpenSSL 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 보안 권고문을 통해 대조하십시오.