CVE-2026-54876 in OpenSSL
摘要
由 VulDB • 2026-08-06
问题摘要:恶意的 TLS 服务器可以通过发送不包含任何单个响应条目(single response entries)的 OCSP 响应,导致启用了 OCSP 响应检查功能的 TLS 客户端发生内存泄漏。
影响摘要:攻击者可以在每次 TLS 握手期间向受害客户端应用程序泄露可调节数量的内存。长时间运行的客户端如果反复连接到恶意服务器,其内存可能会被耗尽,从而导致拒绝服务(Denial of Service)。
CWE: CWE-401: Effective Lifetime 结束后未释放内存
描述:当启用 OCSP 响应检查功能时,在 X.509 证书链验证过程中会调用受影响的函数。这可以通过设置 `X509_V_FLAG_OCSP_RESP_CHECK` 或 `X509_V_FLAG_OCSP_RESP_CHECK_ALL` 验证标志来实现,例如 TLS 客户端验证由服务器在 TLS 握手中附加(stapled)的 OCSP 响应时。
当接收到的 BasicOCSPResponse 包含空的 SEQUENCE OF SingleResponse 序列时(这在网络传输中是允许的,并且 OpenSSL 解码器也会接受),`OCSP_response_get1_basic()` 分配的 `OCSP_BASICRESP` 结构体未被释放,因为早期返回跳过了函数末尾的清理代码。
攻击者可以通过在 BasicOCSPResponse 的 certs 字段中填充虚假证书来放大每次握手泄露的内存量。这些虚假证书会被解析并存储在即将泄漏的结构体中,随后空响应检查会触发早期返回。长时间运行的 TLS 客户端如果反复连接到恶意服务器,其内存可能会随时间推移被耗尽。
默认情况下未启用 OCSP 响应检查功能。仅明确启用了 OCSP 响应检查验证标志的客户端应用程序受影响。
FIPS 影响:无
4.0 和 3.6 版本的 FIPS 模块不受此问题影响,因为受影响的代码位于 OpenSSL FIPS 模块边界之外。
If you want to get best quality of vulnerability data, you may have to visit VulDB.