CVE-2021-4044
libssl에서 X509_verify_cert() 내부 오류의 잘못된 처리
- 게시됨
- 2021. 12. 14.
- 업데이트됨
- 2024. 9. 17.
- CNA 할당 중
- openssl
- 증거 관찰됨
- 2026. 8. 4.
기본 CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H높음 · 다음 30일
- 백분위수
- 98.9%
- 모델 날짜
- 2026. 9. 21.
EPSS는 통계적 추정치이지 확실성이나 영향의 척도가 아닙니다. 이를 CVSS, KEV 상태, 노출 및 환경과 결합하세요.
요약
OpenSSL의 libssl은 클라이언트 측에서 서버가 제공한 인증서를 검증하기 위해 내부적으로 X509_verify_cert()를 호출합니다. 이 함수는 내부 오류(예: 메모리 부족)를 나타내기 위해 음수 반환 값을 반환할 수 있습니다. 이러한 음수 반환 값은 OpenSSL에서 잘못 처리되며, IO 함수(예: SSL_connect() 또는 SSL_do_handshake())가 성공을 나타내지 못하게 하고, 이후 SSL_get_error() 호출 시 SSL_ERROR_WANT_RETRY_VERIFY 값을 반환하게 됩니다. 이 반환 값은 애플리케이션이 이전에 SSL_CTX_set_cert_verify_callback()을 호출한 경우에만 OpenSSL이 반환하도록 설계되었습니다. 대부분의 애플리케이션은 이를 수행하지 않으므로 SSL_get_error()에서 반환되는 SSL_ERROR_WANT_RETRY_VERIFY 값은 전혀 예상치 못한 것이며, 그 결과 애플리케이션이 올바르게 동작하지 않을 수 있습니다. 정확한 동작은 애플리케이션에 따라 다르지만 충돌, 무한 루프 또는 이와 유사한 잘못된 응답이 발생할 수 있습니다. 이 문제는 OpenSSL 3.0의 별도 버그와 결합될 때 더욱 심각해집니다. 해당 버그는 인증서 체인을 처리할 때 X509_verify_cert()가 내부 오류를 나타내도록 만듭니다. 이는 인증서에 Subject Alternative Name 확장이 포함되지 않았지만 인증 기관이 이름 제약 조건을 적용한 경우 발생합니다. 이 문제는 유효한 체인에서도 발생할 수 있습니다. 두 문제를 결합하면 공격자가 애플리케이션에 따라 잘못된 동작을 유도할 수 있습니다. OpenSSL 3.0.1에서 수정되었습니다(영향: 3.0.0).
소스
1Python 스크립트로, CVE-2021-4044 취약점에 대한 OpenSSL 버전을 확인하고 사용자가 지정한 웹사이트에 대한 SSL/TLS 연결을 테스트하며, 오류 처리 및 보고 기능을 제공합니다.
책임 있는 사용
귀하가 소유하고 있거나 테스트할 권한이 있는 시스템에 대해서만 취약점 정보를 사용하십시오. Kitploit은 공개 연구 메타데이터에 연결되며 익스플로잇 코드나 악성 페이로드를 저장하지 않습니다.