CVE-2022-0778
인증서 파싱 시 도달 가능한 BN_mod_sqrt()의 무한 루프
- 게시됨
- 2022. 3. 15.
- 업데이트됨
- 2026. 5. 22.
- CNA 할당 중
- openssl
- 증거 관찰됨
- 2026. 8. 8.
기본 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일
- 백분위수
- 99.4%
- 모델 날짜
- 2026. 9. 21.
EPSS는 통계적 추정치이지 확실성이나 영향의 척도가 아닙니다. 이를 CVSS, KEV 상태, 노출 및 환경과 결합하세요.
요약
BN_mod_sqrt() 함수는 모듈러 제곱근을 계산하는데, 소수가 아닌 법(moduli)에 대해 무한 루프에 빠질 수 있는 버그가 있습니다. 내부적으로 이 함수는 압축 형식의 타원 곡선 공개 키나 압축 형식으로 인코딩된 기본 점(base point)이 포함된 명시적 타원 곡선 파라미터를 포함하는 인증서를 파싱할 때 사용됩니다. 잘못된 명시적 곡선 파라미터를 가진 인증서를 조작하여 무한 루프를 트리거할 수 있습니다. 인증서 파싱은 인증서 서명 검증보다 먼저 수행되므로, 외부에서 제공된 인증서를 파싱하는 모든 프로세스는 서비스 거부(denial of service) 공격에 노출될 수 있습니다. 조작된 개인 키에는 명시적 타원 곡선 파라미터가 포함될 수 있으므로, 이를 파싱할 때도 무한 루프에 도달할 수 있습니다. 따라서 취약한 상황은 다음과 같습니다: - 서버 인증서를 소비하는 TLS 클라이언트 - 클라이언트 인증서를 소비하는 TLS 서버 - 고객으로부터 인증서나 개인 키를 받는 호스팅 제공업체 - 가입자의 인증 요청을 파싱하는 인증 기관(certificate authorities) - ASN.1 타원 곡선 파라미터를 파싱하는 기타 모든 것 또한 공격자가 파라미터 값을 제어할 수 있는 상황에서 BN_mod_sqrt()를 사용하는 다른 모든 애플리케이션도 이 DoS 문제에 취약합니다. OpenSSL 1.0.2 버전에서는 인증서 초기 파싱 중에 공개 키가 파싱되지 않아 무한 루프를 트리거하기가 약간 더 어렵습니다. 그러나 인증서에서 공개 키가 필요한 모든 작업은 무한 루프를 트리거합니다. 특히 공격자는 자체 서명된 인증서를 사용하여 인증서 서명 검증 중에 루프를 트리거할 수 있습니다. 이 문제는 OpenSSL 1.0.2, 1.1.1 및 3.0 버전에 영향을 미칩니다. 2022년 3월 15일에 배포된 1.1.1n 및 3.0.2 릴리스에서 해결되었습니다. OpenSSL 3.0.2에서 수정됨 (영향: 3.0.0, 3.0.1). OpenSSL 1.1.1n에서 수정됨 (영향: 1.1.1-1.1.1m). OpenSSL 1.0.2zd에서 수정됨 (영향: 1.0.2-1.0.2zc).
소스
5CVE-2022-0778에 대한 개념 증명 (P12 및 PEM 형식)
CVE-2022-0778에 대한 개념 증명 익스플로잇으로, 비소수 곡선 매개변수를 가진 조작된 X.509 인증서를 통해 OpenSSL의 BN_mod_sqrt에서 무한 루프를 유발하여 서비스 거부(DoS) 공격을 가능하게 합니다.
책임 있는 사용
귀하가 소유하고 있거나 테스트할 권한이 있는 시스템에 대해서만 취약점 정보를 사용하십시오. Kitploit은 공개 연구 메타데이터에 연결되며 익스플로잇 코드나 악성 페이로드를 저장하지 않습니다.