zebbernCVE/CVE-2026-26830

GitHub: zebbernCVE/CVE-2026-26830

记录了 npm 包 pdf-image 中存在的 OS 命令注入漏洞详情、PoC 及缓解建议。

Stars: 0 | Forks: 0

# CVE-2026-26830:pdf-image 中的 OS 命令注入 ## 概述 `pdf-image` 截止 `2.0.0` 版本允许通过 `pdfFilePath` 参数进行 OS 命令注入。该 package 使用 `util.format()` 构建 shell 命令字符串,并使用 `child_process.exec()` 执行它们。如果应用程序将攻击者可控的文件路径传递给 `PDFImage`,该路径中的 shell 元字符可能导致任意命令执行。 ## 受影响产品 | 产品 | 受影响版本 | 修复版本 | | --- | --- | --- | | pdf-image | 截止 2.0.0 的所有版本 | 截至 2026-03-24 尚无修复 | ## 漏洞详情 - CVE ID:`CVE-2026-26830` - CWE:`CWE-78` - OS Command Injection - CVSS 3.1:`9.8`(`Critical`) - Vector:`CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H` - 受影响组件:`index.js` 易受攻击的代码路径涉及 `constructGetInfoCommand()` 和 `constructConvertCommandForPage()`,这两个函数在调用 `child_process.exec()` 之前,均将 PDF 路径插入到 shell 命令中。 ## 技术影响 任何接受用户可控 PDF 路径并将其传递给 `pdf-image` 的应用程序,最终可能会在主机系统上执行攻击者提供的 shell 命令。 ## 概念验证 ``` const { PDFImage } = require("pdf-image"); const pdfImage = new PDFImage('test.pdf"; touch /tmp/pwned; echo "'); pdfImage.getInfo(); ``` 如果注入的命令运行,该进程将创建 `/tmp/pwned`。 ## 缓解措施 截至本文发布时,尚无修复的 npm 版本可用。 如果您仍然依赖此 package: 1. 停止将不受信任的文件路径传递给 `PDFImage`。 2. 将 shell 字符串构建替换为参数安全的进程执行方式,例如使用带有数组的 `execFile()` 或 `spawn()`。 3. 优先使用维护中的替代方案或包含修复的私有 fork。 ## 参考资料 - https://www.npmjs.com/package/pdf-image - https://github.com/mooz/node-pdf-image - https://github.com/mooz/node-pdf-image/blob/master/index.js
标签:API密钥检测, child_process, CMS安全, CVE-2026-26830, CVSS 9.8, CWE-78, GNU通用公共许可证, JavaScript, MITM代理, Node.js, npm包, OS命令注入, pdf-image, PDF处理, RCE, Shell注入, 任意代码执行, 安全漏洞, 数据可视化, 文档安全, 暗色界面, 软件开发工具包, 输入验证, 高危漏洞