CVE-2026-28351:pypdf RunLengthDecode 中的资源消耗失控

发布: (2026年2月28日 GMT+8 15:10)
2 分钟阅读
原文: Dev.to

Source: Dev.to

漏洞概述

  • CVE 编号: CVE-2026-28351
  • CWE 编号: CWE-400
  • CVSS v4.0 分数: 6.9
  • 发布时间: 2026-02-28
  • 攻击向量: 网络
  • 影响: 拒绝服务 (DoS)
  • 利用状态: 已提供 PoC

受影响组件

此问题存在于 pypdf6.7.4 之前的版本中。漏洞位于 RunLengthDecode 过滤器的实现中。

技术细节

一个包含畸形行程长度编码 (RLE) 流的精心构造的 PDF 可以导致解码器:

  • 进入无限循环,或
  • 无限制地分配内存,导致内存耗尽 (OOM) 情况。

这会使处理未受信任 PDF 且未设置严格资源限制的应用程序陷入拒绝服务状态。

代码更改修复

在 6.7.4 版本中加入了最大输出长度检查:

+ RUN_LENGTH_MAX_OUTPUT_LENGTH = 75_000_000
+ if total_length > RUN_LENGTH_MAX_OUTPUT_LENGTH:
+     raise LimitReachedError("Limit reached while decompressing.")

修复措施

  1. 升级 库:

    pip install "pypdf>=6.7.4"
  2. 重启所有加载该库的服务,以确保使用新版本。

  3. 采用额外的加固措施:

    • 对解析 PDF 的工作进程施加内存限制。
    • 在完整处理之前验证 PDF 文件结构。

参考资料

  • GitHub 安全通报: GHSA-f2v5-7jq9-h8cg
  • 拉取请求 #3664: Add max output length check to RunLengthDecode
  • PyPI 发布: pypdf 6.7.4

欲获取完整分析,请参阅供应商网站上 CVE‑2026‑28351 的详细报告。

0 浏览
Back to Blog

相关文章

阅读更多 »

当工作成为心理健康风险时

markdown !Ravi Mishrahttps://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fu...