Kha-Beleh/PoC-CVE-2025-69419
GitHub: Kha-Beleh/PoC-CVE-2025-69419
针对 CVE-2025-69419 OpenSSL 堆缓冲区溢出漏洞的概念验证代码,通过 ASan 检测复现 PKCS12 处理畸形 BMPString 时的内存损坏问题。
Stars: 0 | Forks: 0
# CVE-2025-69419 – OpenSSL 堆缓冲区溢出复现代码
## 概述
本仓库包含一个针对**CVE-2025-69419**的最小化概念验证(PoC)复现代码,该漏洞影响易受攻击的 OpenSSL 版本。
该 PoC 演示了在处理特制 BMPString `friendlyName` 时,`PKCS12_get_friendlyname()` 报告的堆越界写入问题。
本项目的目标是为开发人员和安全研究人员提供一个简单的回归测试。
此 PoC **不包含漏洞利用技术**,其唯一目的是复现 AddressSanitizer 检测到的内存损坏。
## 测试版本
* OpenSSL 3.0.7 (ASan/UBSan 构建)
## 漏洞
根据公开的安全公告,该漏洞发生在以下函数内部的 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_uni2utf8`
* `PKCS12_get_friendlyname`
## 注意事项
如果没有 AddressSanitizer,应用程序可能会继续执行,因为内存损坏仅包含在堆分配紧邻之前的一字节写入。ASan 能够可靠地检测到这种越界访问,并在发生损坏的节点终止进程。
## 参考
* NVD:https://nvd.nist.gov/vuln/detail/CVE-2025-69419
* OpenSSL 安全公告
标签:Cutter, 安全测试工具, 客户端加密