
漏洞概述
2025年12月8日,Python广泛使用的HTTP客户端库urllib3维护团队发布安全公告,披露了两个高危漏洞(CVSS评分均为8.9分)。这些漏洞可能使恶意服务器通过资源耗尽方式导致客户端应用程序崩溃,影响数百万依赖该基础库的应用程序。
漏洞技术细节
CVE-2025-66418:无限解压缩链漏洞
该漏洞涉及urllib3处理压缩数据流的方式。该库支持"链式HTTP编码算法",允许服务器堆叠gzip和zstd等压缩方法。但研究人员发现"解压缩链中的链接数量没有限制",这一缺陷导致恶意服务器可"插入几乎无限数量的压缩步骤",迫使客户端分配大量内存和CPU资源来解码数据流,最终通过"解压缩炸弹"效应使客户端应用崩溃。
CVE-2025-66471:流式API资源耗尽漏洞
该漏洞影响库的流式API实现。虽然该API设计用于高效读取大响应数据块,但存在实现错误:当流式传输压缩响应时,urllib3必须从网络读取压缩数据并解压缩,直到满足请求的块大小。问题在于少量压缩数据可能扩展为大量未压缩文本,导致库"在单次操作中完全解码少量高度压缩的数据",并将整个结果保存在内存中,造成客户端"资源过度消耗(高CPU使用率和大量内存分配)"。
影响范围与修复方案
所有使用urllib3 2.5.0及更早版本从未受信任源请求数据的应用程序均受影响,包括默认启用内容解码的标准HTTP请求,以及stream()、read()和read_chunked()等流式调用。
修复措施:
- 立即升级至urllib3 v2.6.0或更高版本
- 使用Brotli编码的环境需同时升级至Brotli 1.2.0或brotlicffi 1.2.0.0
临时缓解方案
无法立即修补的用户可禁用自动内容解码(设置preload_content=False),并手动验证Content-Encoding头以确保编码步骤数量安全。
参考来源:
urllib3 Flaws Risk Client DoS via Unbounded Decompression and Streaming Resource Exhaustion
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf
客服小蜜蜂(微信:freebee1024)



