
CVE-2025-69419에 대한 최소한의 개념 증명 재현기입니다. 이는 조작된 BMPString에 의해 트리거되는 OpenSSL의 PKCS12_get_friendlyname() 함수의 힙 버퍼 오버플로우입니다. 회귀 테스트 및 보안 연구용으로 설계되었습니다.
이 저장소는 OpenSSL의 취약한 버전에 영향을 미치는 CVE-2025-69419를 위한 최소한의 개념 증명 재현기를 포함합니다.
PoC는 특수하게 조작된 BMPString friendlyName을 처리할 때 PKCS12_get_friendlyname()에서 보고된 힙 범위를 벗어난 쓰기를 시연합니다.
이 프로젝트의 목표는 개발자와 보안 연구자에게 간단한 회귀 테스트를 제공하는 것입니다.
이 PoC는 악용 기술을 구현하지 않으며 AddressSanitizer가 감지한 메모리 손상을 재현하기 위한 용도로만 사용됩니다.
공개 권고에 따르면, 취약점은 내부의 UTF-16 (BMPString) to UTF-8 변환 중에 발생합니다:
PKCS12_get_friendlyname()OPENSSL_uni2utf8()3바이트 UTF-8 시퀀스가 필요한 문자를 포함하는 잘못된 BMPString은 할당된 버퍼 앞에 1바이트 힙 쓰기가 발생합니다.
build.sh를 편집하고 OpenSSL 빌드 경로를 설정하세요.
그런 다음 실행하십시오:
./build.sh
./run.sh
취약한 ASan 빌드에서 예상되는 결과:
ERROR: AddressSanitizer: heap-buffer-overflow
WRITE of size 1
스택 추적에는 다음이 포함되어야 합니다:
OPENSSL_uni2utf8PKCS12_get_friendlynameAddressSanitizer 없이도 애플리케이션이 계속 실행될 수 있습니다. 손상은 힙 할당 직전의 1바이트 쓰기로 구성되기 때문입니다. ASan은 범위를 벗어난 접근을 안정적으로 감지하고 손상 지점에서 프로세스를 종료합니다.