🟠 高危 | CVE-2026-58227 — The Erlang/OTP ssl application does not detect cyc...
🟠 《高危安全漏洞:CVE-2026-58227》
CVSS 评分: 高危(8.7) 状态: Received 发布时间: 2026-07-27
漏洞简介
CVE-2026-58227 是 Erlang/OTP 中 SSL 应用程序(ssl application)的一个安全漏洞,涉及 CWE-674(未受控的递归) 分类。该漏洞存在于 TLS 或 DTLS 握手过程中,当重建不完整的对端证书链(incomplete peer certificate chain)时,系统未能检测证书链中的循环引用。
具体来说,在 ssl_certificate:handle_incomplete_chain/5 函数中,接收到的证书链被传递给 ssl_certificate:build_certificate_chain/5,该函数通过 ssl_certificate:do_certificate_chain/7 遍历证书的颁发者(issuer)关系。然而,该遍历过程既没有循环检测机制,也没有深度限制。当对端提供两个相互交叉签名的证书(cross-signed certificates)且顺序无序时(例如:证书 A 由 B 签发,证书 B 由 A 签发),颁发者查找会在两个证书之间无限交替,导致递归函数无限执行,调用栈(call stack)和链累加器(chain accumulator)无限制增长。
影响范围
该漏洞影响以下 Erlang/OTP 版本:
- OTP 版本范围:OTP 23.2 至 OTP 29.0.4 之前(即 OTP 29.0.4 修复)、OTP 28.5.0.4 之前、OTP 27.3.4.15 之前。
- 对应的 SSL 版本范围:ssl 10.2 至 11.7.4 之前(即 11.7.4 修复)、ssl 11.6.0.4 之前、ssl 11.2.12.11 之前。
具体修复版本如下:
- OTP 29.0.4
- OTP 28.5.0.4
- OTP 27.3.4.15
对应的 SSL 修复版本:
- ssl 11.7.4
- ssl 11.6.0.4
- ssl 11.2.12.11
风险分析
攻击向量:远程未认证攻击者可以通过 TLS 或 DTLS 握手过程中的 Certificate 消息(Certificate handshake message)发送一个精心构造的证书链。攻击者只需建立一个 TCP 连接并完成部分握手(partial handshake),无需完成完整握手或进行身份认证。
攻击后果:
- 拒绝服务(Denial of Service, DoS):由于递归无限执行,会导致 BEAM 节点(BEAM node)内存耗尽(memory exhaustion),最终使节点崩溃(crash)。
- 影响范围:该漏洞同时影响 TLS/DTLS 服务器和客户端,只要它们处理对端发送的证书消息(peer certificate messages)就会受到影响。
CVSS 评分:根据 CVSS:4.0 向量(AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N),该漏洞的可用性影响(Availability Impact) 为高(High),而机密性(Confidentiality)和完整性(Integrity)无影响。攻击复杂度低,无需权限或用户交互,且攻击可通过网络远程发起,因此风险等级较高。
🔍 技术细节
| 字段 | 值 |
|---|---|
| CVE ID | CVE-2026-58227 |
| CVSS 评分 | 8.7 🟠 |
| 严重程度 | 高危 |
| CVSS 向量 | CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
| CWE 分类 | CWE-674 |
| 发布时间 | 2026-07-27 |
| 最后更新 | 2026-07-27 |
| 状态 | Received |
| 数据来源 | 6b3ad84c-e1a6-4bf7-a703-f496b71e49db |
🔗 参考链接
https://github.com/erlang/otp/commit/0307bff2c72b685c6bd952daaac6bd661c247d62
https://github.com/erlang/otp/commit/241d43703989fec4b6bf637beaeb366d92dcc4c2
https://github.com/erlang/otp/commit/7db64720177961e04545681480d691c4be81c54d
https://github.com/erlang/otp/security/advisories/GHSA-r5jr-mq46-vmhw
https://www.erlang.org/doc/system/versions.html#order-of-versions