CVE-2021-3712
ASN.1 문자열 처리 시 읽기 버퍼 오버런
- 게시됨
- 2021. 8. 24.
- 업데이트됨
- 2026. 4. 16.
- CNA 할당 중
- openssl
- 증거 관찰됨
- 2026. 8. 8.
기본 CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:H높음 · 다음 30일
- 백분위수
- 98.9%
- 모델 날짜
- 2026. 10. 15.
EPSS는 통계적 추정치이지 확실성이나 영향의 척도가 아닙니다. 이를 CVSS, KEV 상태, 노출 및 환경과 결합하세요.
요약
ASN.1 문자열은 OpenSSL 내부에서 ASN1_STRING 구조체로 표현되며, 이 구조체에는 문자열 데이터를 담는 버퍼와 버퍼 길이를 담는 필드가 포함됩니다. 이는 NUL(0) 바이트로 종결되는 문자열 데이터용 버퍼로 표현되는 일반적인 C 문자열과 대조적입니다. 엄격한 요구 사항은 아니지만, OpenSSL 자체의 "d2i" 함수(및 기타 유사한 파싱 함수)를 사용하여 파싱된 ASN.1 문자열과 ASN1_STRING_set() 함수로 값이 설정된 모든 문자열은 ASN1_STRING 구조체의 바이트 배열을 추가로 NUL 종결합니다. 그러나 애플리케이션이 ASN1_STRING 배열의 "data" 및 "length" 필드를 직접 설정하여 바이트 배열을 NUL 종결하지 않는 유효한 ASN1_STRING 구조체를 직접 생성하는 것도 가능합니다. 이런 상황은 ASN1_STRING_set0() 함수를 사용할 때도 발생할 수 있습니다. ASN.1 데이터를 출력하는 여러 OpenSSL 함수는 ASN1_STRING 바이트 배열이 NUL 종결될 것이라고 가정하는 것으로 확인되었지만, 직접 생성된 문자열의 경우 이는 보장되지 않습니다. 애플리케이션이 ASN.1 구조체 출력을 요청하고, 해당 ASN.1 구조체에 애플리케이션이 "data" 필드를 NUL 종결하지 않고 직접 생성한 ASN1_STRING이 포함된 경우 읽기 버퍼 오버런이 발생할 수 있습니다. 동일한 문제는 인증서의 이름 제약 처리 중에도 발생할 수 있습니다(예: 애플리케이션이 OpenSSL 파싱 함수를 통해 인증서를 로드하지 않고 직접 생성했고, 해당 인증서에 NUL 종결되지 않은 ASN1_STRING 구조체가 포함된 경우). 또한 X509_get1_email(), X509_REQ_get1_email() 및 X509_get1_ocsp() 함수에서도 발생할 수 있습니다. 악의적인 행위자가 애플리케이션이 ASN1_STRING을 직접 생성한 다음 영향을 받는 OpenSSL 함수 중 하나를 통해 처리하도록 유도할 수 있다면 이 문제가 발생할 수 있습니다. 이는 충돌(서비스 거부 공격 유발)로 이어질 수 있습니다. 또한 개인 메모리 내용(예: 개인 키 또는 민감한 평문)이 노출될 수도 있습니다. OpenSSL 1.1.1l에서 수정됨(영향: 1.1.1-1.1.1k). OpenSSL 1.0.2za에서 수정됨(영향: 1.0.2-1.0.2y).
소스
EOL CentOS7 상자에서 openssl CVE(https://nvd.nist.gov/vuln/detail/cve-2021-3712)를 해결하기 위한 프로덕션 준비 단계
책임 있는 사용
귀하가 소유하고 있거나 테스트할 권한이 있는 시스템에 대해서만 취약점 정보를 사용하십시오. Kitploit은 공개 연구 메타데이터에 연결되며 익스플로잇 코드나 악성 페이로드를 저장하지 않습니다.