GraoMelo/CVE-2026-AES-Wrap-PAD-PoC

GitHub: GraoMelo/CVE-2026-AES-Wrap-PAD-PoC

该项目复现并修复了 OpenSSL 4.0.0 中带填充 AES Wrap 密码实现因输出缓冲区大小计算不精确而导致的 1–7 字节堆溢出漏洞(CVE-2026 草案)。

Stars: 0 | Forks: 0

# CVE-2026-AES-Wrap-PAD-PoC ## OpenSSL 4.0.0 中带填充的 AES Wrap 堆缓冲区溢出 **CVSS 3.1:** 8.2(高危)— `AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H` ### 根本原因 带填充的 AES Wrap 密码(`aes-256-wrap-pad`,RFC 5649)将输出 计算为 `ceil(inl/8)*8 + 8`,但是: 1. **EVP 层**(`crypto/evp/evp_enc.c:690,801`)在 WRAP 模式下估算 `outsize = inl + 8` — 当 `inl % 8 != 0` 时,会少算 1-7 字节 2. **Provider 检查**(`cipher_aes_wrp.c:260`)验证 `outsize < inl` 而不是使用感知填充的计算 最终结果:**1-7 字节堆缓冲区溢出**(可变,取决于输入 对齐方式)。当 `inl % 8 == 1` 时最大溢出 7 字节。 ### 影响 - 堆元数据损坏 → 潜在的 RCE - 可变的溢出大小为攻击者在堆布局定位上提供了灵活性 - 与 CVE-2026-TDES-Wrap(孪生漏洞)具有相同的 EVP 根本原因 ### CI 状态 | 架构 | 状态 | |-------------|--------| | amd64 (x86_64) | [![CI amd64](https://static.pigsec.cn/wp-content/uploads/repos/cas/e9/e91165dd2145af74b3543bd11c7d71c60ffb56e93b02e844a5acdd33d166a2c3.svg)](https://github.com/GraoMelo/CVE-2026-AES-Wrap-PAD-PoC/actions/workflows/ci-amd64.yml) | | arm64 (aarch64) | [![CI arm64](https://static.pigsec.cn/wp-content/uploads/repos/cas/51/5151b2d9b676850dd1b77a20a8d3ed794062b616bb420e827f97dddc62bd6ec7.svg)](https://github.com/GraoMelo/CVE-2026-AES-Wrap-PAD-PoC/actions/workflows/ci-arm64.yml) | | i686 (32-bit) | [![CI i686](https://static.pigsec.cn/wp-content/uploads/repos/cas/db/db67ecdfdb40299b764c55d8ce90f5fcc17ed5d26ef72649433b420a943b3e45.svg)](https://github.com/GraoMelo/CVE-2026-AES-Wrap-PAD-PoC/actions/workflows/ci-i686.yml) | ### 目录 | 目录 | 描述 | |-----------|-------------| | `PoC/` | PoC 源码(`poc_aes_wrap_pad_overflow.c`)+ Makefile | | `patches/` | 修复补丁(Provider + EVP 层) | | `evidence/` | ASan 崩溃日志(由 CI 生成,涵盖 3 种架构) | | `scripts/` | 构建编排脚本 | ### 本地构建 ``` ./scripts/build-openssl.sh --arch amd64 ./scripts/run-poc.sh --mode vanilla --arch amd64 # esperado: ASan crash ./scripts/build-patched.sh --arch amd64 ./scripts/run-poc.sh --mode patched --arch amd64 # esperado: buffer too small ``` ### 孪生漏洞 相同的 EVP 根本原因同样影响 TDES Wrap (RFC 3217): **[CVE-2026-TDES-Wrap-PoC](https://github.com/GraoMelo/CVE-2026-TDES-Wrap-PoC)** *由 Everton Melo(独立研究员)发现并报告 — forense.melo@protonmail.com*
标签:C/C++, Cutter, Go语言工具, OpenSSL, Web报告查看器, 事务性I/O, 堆溢出, 安全测试工具, 密码学, 手动系统调用, 漏洞证明(PoC)