🇰🇷 한글 설명
특히 설계된 PKCS#7 또는 S/MIME 서명 메시지가 처리될 때, OpenSSL의 PKCS7_verify() 함수에서 호출자가 소유한 BIO를 잘못 해제하는 use-after-free 취약점이 발생합니다. 이로 인해 프로세스 충돌, 힙 손상 또는 잠재적 원격 코드 실행이 발생할 수 있습니다.
💡 쉬운 설명
악의적으로 조작된 전자 메일 서명 파일을 처리할 때 프로그램이 메모리를 잘못 다루는 오류가 발생합니다. 이 오류를 이용하면 프로그램이 충돌하거나 해커가 컴퓨터를 완전히 장악할 위험이 있습니다.
🇺🇸 원문 (English)
Issue summary: A specially crafted PKCS#7 or S/MIME signed message could
trigger a use-after-free during PKCS#7 signature verification.
Impact summary: A use-after-free may result in process crashes, heap
corruption, or potentially remote code execution.
When processing a PKCS#7 or S/MIME signed message, if the SignedData
digestAlgorithms field is present as an empty ASN.1 SET, OpenSSL may
incorrectly free a caller-owned BIO during PKCS7_verify(). A subsequent
use of the BIO by the calling application results in a use-after-free
condition.
In the common case this occurs when the application later calls
BIO_free() on the BIO originally passed to PKCS7_verify(). Depending
on allocator behavior and application-specific BIO usage patterns, this
may result in a crash or other memory corruption. In some application
contexts this may potentially be exploitable for remote code execution.
Applications that process PKCS#7 or S/MIME signed messages using OpenSSL
PKCS#7 APIs may be affected. Applications using the CMS APIs for this
processing are not affected.
The FIPS modules in 4.0, 3.6, 3.5, 3.4, and 3.0 are not affected by this
issue, as the affected code is outside the OpenSSL FIPS module boundary.
📍 영향받는 시스템
OpenSSL (CMS API를 사용하지 않는 PKCS#7 API 기반 애플리케이션)
⚔️ 공격 벡터
악성 PKCS#7 또는 S/MIME 서명 메시지를 통해 OpenSSL 라이브러리 호출 유도
🛡️ 대응 방법
OpenSSL을 최신 안정 버전으로 업그레이드하고 CMS API를 사용하는 경우 해당 코드 경로 확인
🔧 검증 코드
출력된 버전이 최신 패치된 버전인지 확인하고, 애플리케이션이 CMS API 대신 PKCS#7 API를 사용하는지 검토