关键漏洞信息 漏洞ID CVE-2026-25535 漏洞类型 Denial of Service (DoS) via Resource Exhaustion 漏洞描述 在 jsPDF 的 gif_support.js 模块中识别出一个拒绝服务 (DoS) 漏洞。库未能验证 GIF 逻辑屏幕描述符标题中指定的图像尺寸。攻击者可以提供一个专门制作的具有极端尺寸(例如,65535x65535)的 GIF 文件,迫使引擎进行巨大的内存分配来处理像素缓冲区。 根因分析 在 gif_support.js 中,processGIF89A 函数不进行合理性检查,直接从 GifReader 对象读取宽度和高度: 这会触发CWE-770:未限制或节流的资源分配。 影响 客户端: 导致浏览器标签卡冻结或崩溃,导致未保存的用户数据丢失。 服务器端Node.js: 单个恶意请求可以耗尽Node.js进程的堆内存,导致内存溢出(OOM)崩溃和PDF生成服务的完全中断。 Proof of Concept (PoC) 创建有效载荷:取一个最小的GIF文件,通过十六进制编辑将偏移量0x06和0x08更改到0xFFFF。 实验验证 结果: RangeError: 无效数组长度或者操作系统终止进程。缓解措施是升级jsPDF到最新修复的版本。在将图像数据传递给GIF处理器之前,实现最大尺寸约束(例如,10000x10000)。 研究者 ZeroXJacks 严重性 中等(6.5)