🔴 严重 | CVE-2026-55953 — The Erlang/OTP ssl TLS 1.2 (and earlier) and DTLS ...
🔴 《严重安全漏洞:CVE-2026-55953》
CVSS 评分: 严重(9.1) 状态: Received 发布时间: 2026-07-27
漏洞简介
CVE-2026-55953 是 Erlang/OTP 中 SSL/TLS 实现的一个安全漏洞,涉及 CWE-757(缺少对算法选择的安全检查)。该漏洞存在于 TLS 1.2 及更早版本以及 DTLS 协议的客户端实现中。
具体来说,当客户端发起 TLS 握手时,服务端在 ServerHello 消息中选择的加密套件(cipher suite)并未被客户端验证是否属于客户端在 ClientHello 中提供的套件列表。在客户端代码中,tls_handshake:hello/5 处理器会验证协商的协议版本以及降级哨兵(downgrade sentinel),但随后直接将服务端选择的套件传递给 ssl_handshake:handle_server_hello_extensions/9 函数,该函数在安装该套件之前没有进行成员资格检查(membership check)。相比之下,TLS 1.3 的客户端路径会执行此检查(符合 RFC 8446 要求),因此不受此漏洞影响。
影响范围
该漏洞影响以下 Erlang/OTP 版本(对应 ssl 应用版本):
- OTP 版本:从 OTP 17.0 开始,至以下修复版本之前:
- OTP 29.0.4
- OTP 28.5.0.4
- OTP 27.3.4.15
- ssl 应用版本:从 5.3.4 开始,至以下修复版本之前:
- 11.7.4
- 11.6.0.4
- 11.2.12.11
风险分析
该漏洞允许路径上的中间人攻击者(on-path attacker)在客户端与目标服务端之间实施攻击。攻击者可以拦截客户端的 ClientHello,并回复一个伪造的 ServerHello,在其中选择一个客户端从未提供的匿名密钥交换套件(anonymous key exchange suite),例如 TLS_DH_anon_* 或 TLS_ECDH_anon_*。
由于匿名套件不要求服务端提供证书,因此整个 verify_peer 和 cacerts 配置将被绕过:
- 攻击者使用自己的临时参数(ephemeral parameters)完成握手。
- 不进行任何证书验证。
- 不检查主机名(hostname)。
ssl:connect将返回{ok, Socket},使客户端误认为连接是安全的。
此后,所有应用层流量(application traffic)均可被攻击者读取和篡改,导致机密性(confidentiality)和完整性(integrity)完全丧失。该漏洞的 CVSS 4.0 评分为 9.3(Critical),攻击复杂度低(Low),无需权限(None),无需用户交互(None),且对机密性和完整性影响均为高(High)。
🔍 技术细节
| 字段 | 值 |
|---|---|
| CVE ID | CVE-2026-55953 |
| CVSS 评分 | 9.1 🔴 |
| 严重程度 | 严重 |
| CVSS 向量 | CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/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-757 |
| 发布时间 | 2026-07-27 |
| 最后更新 | 2026-07-27 |
| 状态 | Received |
| 数据来源 | 6b3ad84c-e1a6-4bf7-a703-f496b71e49db |
🔗 参考链接
https://github.com/erlang/otp/commit/064e236414614f9085cbbbd6eacf0e43c02d1b4b
https://github.com/erlang/otp/commit/0a82596d425abe43dc2e0b3d74aa1557ef74051c
https://github.com/erlang/otp/commit/e6ff938116b2872bccc478af7fefb56627285b77
https://github.com/erlang/otp/security/advisories/GHSA-c6cw-pr89-w882
https://www.erlang.org/doc/system/versions.html#order-of-versions