PKCS7_verify() 中的堆释放后使用漏洞,可能导致内存损坏、崩溃和潜在远程代码执行。
CVE-2026-45447 是 OpenSSL 的 PKCS#7 验证功能中的一个关键漏洞。
该缺陷存在于 PKCS7_verify() 代码路径中,可通过特制的包含畸形 ASN.1 结构的 PKCS#7 或 S/MIME 签名消息触发。
成功利用可能导致:
恶意行为者可以构造一个特制的:
其中包含一个空的 ASN.1 SET,位于:
SignedData.digestAlgorithms
在验证期间,OpenSSL 错误地释放了一个 BIO 对象,而调用应用程序仍认为拥有该对象的所有权。
后续访问导致典型的:
堆释放后使用
条件。
攻击者
│
▼
特制 PKCS#7 / S-MIME 消息
│
▼
目标应用程序
│
▼
PKCS7_verify()
│
▼
意外释放 BIO
│
▼
触发释放后使用
│
├── 应用程序崩溃
├── 内存损坏
└── 潜在 RCE
可能泄露敏感内存内容。
堆损坏可能允许攻击者操控内存。
应用程序崩溃和拒绝服务条件。
可能性取决于:
- 应用程序架构
- 堆布局
- 缓解措施
- 利用原语
| 分支 |
|---|
升级到供应商提供的修补版本,来自:
始终从操作系统供应商处验证软件包版本。
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
使用 OpenSSL 的 PKCS#7 验证 API 的应用程序:
任何直接调用以下函数的软件:
PKCS7_verify()
Segmentation fault
SIGSEGV
SIGABRT
Double free
Heap corruption
journalctl -xe
dmesg | grep segfault
grep -Ri "openssl" /var/log/
查找以下内容:
PKCS7_verify failed
BIO error
ASN1 parsing failure
SMIME verification failure
Heap corruption detected
1. 创建畸形 PKCS#7 结构
2. 嵌入空 ASN.1 SET
3. 交付给目标应用程序
4. 触发 PKCS7_verify()
5. 观察堆损坏
⚠️ 本仓库有意排除武器化利用代码。
OpenSSL 是世界上最广泛部署的加密库之一。
影响签名验证例程的漏洞可能影响:
CVE-2026-45447/
│
├── README.md
│
├── assets/
│ ├── CVE-2026-45447.png
│ └── screenshots/
│
├── advisory/
│ ├── technical-analysis.md
│ ├── timeline.md
│ └── impact-assessment.md
│
├── detection/
│ ├── sigma/
│ ├── yara/
│ └── hunting-guide.md
│
├── iocs/
│ └── indicators.md
│
└── references/
└── links.md
本仓库仅用于以下目的:
此处包含的信息只能在授权环境中并依照适用法律法规使用。
OpenSSL • 释放后使用 • 关键严重性
| 属性 | 值 |
|---|
| CVE | CVE-2026-45447 |
| 厂商 | OpenSSL |
| 严重性 | 关键 |
| CVSS v3.1 | 9.8 |
| CWE | CWE-416 |
| 漏洞类型 | 释放后使用 |
| 攻击向量 | 远程 |
| 用户交互 | 需要(消息处理) |
| 身份验证 | 无 |
| 受影响组件 | PKCS7_verify() |
| 状态 |
|---|
| OpenSSL 1.0.2 | 受影响 |
| OpenSSL 1.1.1 | 受影响 |
| OpenSSL 3.0.x | 受影响 |
| OpenSSL 3.4.x | 受影响 |
| OpenSSL 3.5.x | 受影响 |
| OpenSSL 3.6.x | 受影响 |
| 指标 | 值 |
|---|
| 攻击向量 | 网络 |
| 攻击复杂度 | 低 |
| 所需权限 | 无 |
| 用户交互 | 需要 |
| 作用域 | 未改变 |
| 机密性 | 高 |
| 完整性 | 高 |
| 可用性 | 高 |