此仓库包含一个针对 CVE-2025-69419 的最小概念验证复现器,该漏洞影响存在漏洞的 OpenSSL 版本。
该 PoC 演示了在处理特制的 BMPString friendlyName 时,PKCS12_get_friendlyname() 中报告的堆越界写入。
此项目的目标是为开发人员和安全研究人员提供一个简单的回归测试。
该 PoC 不实施漏洞利用技术,仅用于重现 AddressSanitizer 检测到的内存破坏。
根据公开公告,该漏洞出现在以下函数内部的 UTF-16 (BMPString) 到 UTF-8 转换过程中:
PKCS12_get_friendlyname()OPENSSL_uni2utf8()包含需要三字节 UTF-8 序列的字符的畸形 BMPString 会导致在分配缓冲区之前发生一字节堆写入。
编辑 build.sh 并设置 OpenSSL 构建的路径。
然后运行:
./build.sh
./run.sh
在易受攻击的 ASan 构建上的预期结果:
ERROR: AddressSanitizer: heap-buffer-overflow
WRITE of size 1
堆栈跟踪应包含:
OPENSSL_uni2utf8PKCS12_get_friendlyname在没有 AddressSanitizer 的情况下,应用程序可能会继续执行,因为该破坏仅包括紧邻堆分配之前的一字节写入。ASan 能可靠地检测到越界访问,并在破坏发生点终止进程。