🇰🇷 한글 설명
OCSP 응답 확인 기능이 활성화된 TLS 클라이언트에서 악의적인 서버가 빈 응답 항목을 포함한 OCSP 응답을 보낼 경우 메모리 누수가 발생합니다. 이로 인해 클라이언트 애플리케이션의 메모리가 고갈되어 서비스 거부(DoS) 상태에 빠질 수 있습니다.
💡 쉬운 설명
가짜 서버가 특수한 응답을 보내 클라이언트 컴퓨터의 메모리를 야금야금 갉아먹는 공격입니다. 이 현상이 반복되면 프로그램이 메모리 부족으로 인해 멈추거나 강제 종료될 수 있습니다.
🇺🇸 원문 (English)
Issue summary: A malicious TLS server can cause a memory leak in a TLS
client that has enabled OCSP response checking by sending an OCSP
response that contains no single response entries.
Impact summary: An attacker can leak an attacker-tunable amount of memory
per TLS handshake in a victim client application. A long-running client
that repeatedly connects to a malicious server can have its memory
exhausted, resulting in a Denial of Service.
CWE: CWE-401: Missing Release of Memory after Effective Lifetime
Description: The affected function is called during X.509 certificate
chain verification when OCSP response checking is enabled
with the X509_V_FLAG_OCSP_RESP_CHECK or X509_V_FLAG_OCSP_RESP_CHECK_ALL
verification flags, for example when a TLS client verifies an OCSP
response stapled into the TLS handshake by the server.
When the received BasicOCSPResponse contains an empty SEQUENCE OF
SingleResponse, which is permitted on the wire and accepted by the
OpenSSL decoder, the OCSP_BASICRESP structure allocated by
OCSP_response_get1_basic() was not freed because an early return
bypassed the cleanup code at the end of the function.
The amount of memory leaked per handshake can be amplified by the
attacker by padding the certs field of the BasicOCSPResponse with
bogus certificates, which are parsed and stored in the leaked
structure before the empty response check triggers the early return.
A long-running TLS client that repeatedly connects to a malicious
server can have its memory exhausted over time.
OCSP response checking is not enabled by default. Only client
applications that explicitly enable the OCSP response check
verification flags are affected.
FIPS impact: no
The FIPS modules in 4.0 and 3.6 are not affected by this issue as the
affected code is outside the OpenSSL FIPS module boundary.
📍 영향받는 시스템
OCSP 응답 확인 플래그(X509_V_FLAG_OCSP_RESP_CHECK 등)를 명시적으로 활성화하여 사용하는 OpenSSL 기반 클라이언트 애플리케이션
⚔️ 공격 벡터
악의적인 TLS 서버가 비어 있는 SingleResponse 항목을 포함한 OCSP 응답을 클라이언트에 전송하여 메모리 누수 유도
🛡️ 대응 방법
OpenSSL 보안 패치가 적용된 최신 버전으로 업데이트하거나, 불필요한 경우 OCSP 응답 확인 기능을 비활성화함
🔧 검증 코드
출력된 OpenSSL 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 보안 권고문을 통해 대조함
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
💻 영향받는 소프트웨어
IBM WebSphere Application Server