🇰🇷 한글 설명
PKCS#7 서명 검증 중 ASN1_TYPE 유니온 멤버가 타입 검증 없이 접근되는 타입 혼동 취약점입니다. 악의적으로 조작된 PKCS#7 데이터 처리 시 NULL 포인터 역참조가 발생하여 서비스 거부를 초래합니다.
💡 쉬운 설명
OpenSSL의 PKCS#7 서명 검증에서 잘못된 데이터 처리 시 프로그램이 비정상 메모리에 접근하여 충돌합니다. 공격자는 악의적인 파일을 보내 서버를 다운시킬 수 있습니다.
🇺🇸 원문 (English)
Issue summary: A type confusion vulnerability exists in the signature
verification of signed PKCS#7 data where an ASN1_TYPE union member is
accessed without first validating the type, causing an invalid or NULL
pointer dereference when processing malformed PKCS#7 data.
Impact summary: An application performing signature verification of PKCS#7
data or calling directly the PKCS7_digest_from_attributes() function can be
caused to dereference an invalid or NULL pointer when reading, resulting in
a Denial of Service.
The function PKCS7_digest_from_attributes() accesses the message digest attribute
value without validating its type. When the type is not V_ASN1_OCTET_STRING,
this results in accessing invalid memory through the ASN1_TYPE union, causing
a crash.
Exploiting this vulnerability requires an attacker to provide a malformed
signed PKCS#7 to an application that verifies it. The impact of the
exploit is just a Denial of Service, the PKCS7 API is legacy and applications
should be using the CMS API instead. For these reasons the issue was
assessed as Low severity.
The FIPS modules in 3.5, 3.4, 3.3 and 3.0 are not affected by this issue,
as the PKCS#7 parsing implementation is outside the OpenSSL FIPS module
boundary.
OpenSSL 3.6, 3.5, 3.4, 3.3, 3.0, 1.1.1 and 1.0.2 are vulnerable to this issue.
📍 영향받는 시스템
OpenSSL 3.6, 3.5, 3.4, 3.3, 3.0, 1.1.1, 1.0.2
⚔️ 공격 벡터
악의적으로 조작된 PKCS#7 데이터를 서명 검증 기능이 있는 애플리케이션으로 전달
🛡️ 대응 방법
영향받는 OpenSSL 버전을 패치된 최신 버전으로 업그레이드 또는 PKCS#7 API 대신 CMS API 사용
🔧 검증 코드
OpenSSL 버전이 3.0~3.6 또는 1.0.2, 1.1.1이면 취약합니다. 패치된 최신 버전으로 업그레이드 필요합니다.