漏洞详情
包: pip - urllib3 (pip)
受影响版本: >= 1.22, < 2.6.3
已修复版本: 2.6.3
描述
影响
urllib3的流式API旨在通过分块读取内容(而非一次性将整个响应体加载到内存中)来高效处理大型HTTP响应。urllib3可以根据HTTP Content-Encoding头(例如gzip、deflate、br或zstd)执行解码或解压缩。当使用流式API时,库只解压必要的字节,从而实现部分内容消费。
然而,对于HTTP重定向响应,库会读取整个响应体以排空连接,并且不必要地进行解压缩。这种解压缩甚至在调用任何读取方法之前就发生了,并且配置的读取限制也无法限制解压缩的数据量。因此,系统缺乏针对压缩炸弹的安全防护。恶意服务器可利用此漏洞在客户端触发过度的资源消耗(高CPU使用率和为解压缩数据分配大量内存;CWE-409)。
受影响的使用场景
使用urllib3版本2.6.2及更早版本、通过设置preload_content=False从未受信任的来源流式传输内容,且未禁用重定向的应用程序和库。
修复方案
- 升级到至少urllib3 v2.6.3,在该版本中,当
preload_content=False时,库不会解码重定向响应的内容。 - 如果无法立即升级,可通过为向不受信任来源的请求设置
redirect=False来禁用重定向。
参考信息
- GHSA-38jv-5279-wg99
- urllib3/urllib3@8864ac4
- https://nvd.nist.gov/vuln/detail/CVE-2026-21441
严重程度
高危 - CVSS总体评分:8.9 / 10
CVSS v4 基础指标: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H
EPSS 分数:0.014% (第2百分位)
弱点
CWE-409 - 对高压缩数据的处理不当(数据放大) 产品未处理或错误处理具有极高压缩比、会产生大量输出的压缩输入。