🇰🇷 한글 설명
부분 체인 검증과 OCSP 응답 검사가 동시에 활성화된 환경에서 신뢰할 수 있는 루트 인증서가 없는 경우 NULL 포인터 역참조로 인해 프로세스가 충돌합니다. 이는 인증서 체인 검증 로직의 결함으로 인해 발생하며, 기본 설정에서는 활성화되지 않습니다.
💡 쉬운 설명
보안 검증 설정을 특수하게 구성했을 때 프로그램이 갑자기 꺼지는 버그입니다. 일반적으로 사용하지 않는 고급 기능을 켜두지 않는 한 위험하지 않습니다.
🇺🇸 원문 (English)
Issue summary: When a partial-chain certificate verification is enabled
together with OCSP response checking for the whole chain, a NULL dereference
will happen if the verified chain does not have a self-signed trusted anchor,
crashing the process.
Impact summary: A NULL pointer dereference can trigger a crash which leads to a
Denial of Service for an application.
When performing OCSP response checking for certificates in the verification
chain, the code always tries to access the next certificate as the issuer.
There is a check for a self-signed certificate. However with the partial
chain verification enabled when the chain does not have a self-signed trusted
anchor, the issuer will be NULL for the last certificate in the chain. A NULL
pointer dereference then happens.
This issue affects only applications which enable both OCSP verification
of the certificate chain (X509_V_FLAG_OCSP_RESP_CHECK_ALL) and partial
chain verification (X509_V_FLAG_PARTIAL_CHAIN) in the certificate
verification. Both flags are disabled by default. For that reason, we have
assigned Low severity to the issue.
No FIPS modules are affected by this issue as the affected code is outside
the OpenSSL FIPS module boundary.
📍 영향받는 시스템
OpenSSL (X509_V_FLAG_OCSP_RESP_CHECK_ALL 및 X509_V_FLAG_PARTIAL_CHAIN 플래그를 동시에 사용하는 애플리케이션)
⚔️ 공격 벡터
특정 인증서 체인을 사용하여 OCSP 검증을 요청함으로써 대상 애플리케이션의 충돌을 유도
🛡️ 대응 방법
OpenSSL 최신 버전으로 업그레이드하거나, X509_V_FLAG_PARTIAL_CHAIN 플래그 사용을 중지
🔧 검증 코드
출력된 버전이 취약한 OpenSSL 버전보다 최신인지 확인하여 패치가 적용되었는지 검증