PyPDF LZWDecode内存耗尽漏洞分析与修复方案

本文详细分析了PyPDF库中LZWDecode流处理漏洞的技术细节,攻击者可通过特制PDF文件耗尽系统内存,每个流最高可消耗1GB内存。文章提供了补丁版本和临时解决方案。

PyPDF LZWDecode内存耗尽漏洞分析

漏洞概述

漏洞标识符: GHSA-m449-cwjh-6pw7
严重程度: 中等(CVSS评分6.6)
影响版本: pypdf < 6.4.0
修复版本: pypdf == 6.4.0

技术细节

漏洞影响

攻击者可以利用此漏洞构造特制的PDF文件,在使用LZWDecode过滤器解析页面内容流时,每个流最多可消耗1GB内存。这是对GHSA-jfx9-29x2-rv3j漏洞的后续修复,旨在使默认限制与zlib的限制保持一致。

漏洞类型

  • CWE-400: 不受控制的资源消耗
  • CWE-409: 对高压缩率数据处理不当(数据放大)

解决方案

补丁修复

该漏洞已在pypdf 6.4.0版本中修复。

临时解决方案

如果用户暂时无法升级,可以使用以下代码覆盖默认设置:

1
pypdf.filters.LZW_MAX_OUTPUT_LENGTH = 75_000_000

CVSS v4评估指标

可利用性指标

  • 攻击向量: 网络
  • 攻击复杂度: 低
  • 攻击要求: 无
  • 所需权限: 无
  • 用户交互: 无

受影响系统影响指标

  • 机密性: 无影响
  • 完整性: 无影响
  • 可用性: 高影响

参考链接

时间线

  • 报告时间: 2025年11月23日
  • 发布到GitHub咨询数据库: 2025年11月24日
  • 最后更新: 2025年11月24日

报告者: aydinnyunus
分析师: stefan6419846

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计