CVE-2022-0778
인증서 파싱 시 도달 가능한 BN_mod_sqrt()의 무한 루프
- 게시됨
- 2022. 3. 15.
- 업데이트됨
- 2026. 10. 14.
- 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.5%
- 모델 날짜
- 2026. 10. 15.
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).
소스
openssl/CVE-2022-0778
OpenSSL Infinite Loop Leads to DoS (CVE-2022-0778)
Vulhub vulnerability labs명시된 조건
- lab image version: vulhub/openssl:1.1.1m-with-curl(openssl/CVE-2022-0778/docker-compose.yml:services.curl.image)
책임 있는 사용
귀하가 소유하고 있거나 테스트할 권한이 있는 시스템에 대해서만 취약점 정보를 사용하십시오. Kitploit은 공개 연구 메타데이터에 연결되며 익스플로잇 코드나 악성 페이로드를 저장하지 않습니다.