zebbernCVE/CVE-2026-26832

GitHub: zebbernCVE/CVE-2026-26832

记录 node-tesseract-ocr npm 包中高危操作系统命令注入漏洞(CVE-2026-26832)的安全公告,包含漏洞原理、影响范围及缓解建议。

Stars: 0 | Forks: 0

# CVE-2026-26832: node-tesseract-ocr 中的操作系统命令注入 ## 概述 `node-tesseract-ocr` 截至 `2.2.1` 版本,其 `src/index.js` 中的 `recognize()` 函数存在操作系统命令注入漏洞。该包构建 Shell 命令字符串并使用 `child_process.exec()` 执行。由于输入路径仅用双引号包裹,攻击者可以通过精心构造的文件路径注入 Shell 语法。 ## 受影响产品 | 产品 | 受影响版本 | 修复版本 | | --- | --- | --- | | node-tesseract-ocr | 截至版本 2.2.1 的所有版本 | 截至 2026-03-24 尚无可用修复 | ## 漏洞详情 - CVE ID: `CVE-2026-26832` - CWE: `CWE-78` - 操作系统命令注入 - 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` - 受影响组件: `src/index.js`, `recognize()` 漏洞模式如下: ``` const command = [binary, inputOption, "stdout", ...options].join(" "); exec(command, ...); ``` 该命令字符串继承了 Shell 解析规则。恶意的文件路径可以突破引号包裹的参数。 ## 技术影响 如果应用程序将不可信的路径传递给 `recognize()`,那么对用户提供的图像运行 OCR 可能会使主机系统暴露于命令执行风险中。 ## 概念验证 ``` test.jpg"; touch /tmp/pwned; echo "x ``` ## 缓解措施 在撰写本文时,尚无可用的 npm 修复版本。 如果您仍依赖此包: 1. 将输入路径视为不可信数据。 2. 停止使用 `join(" ")` 构建 Shell 命令字符串。 3. 使用带有显式参数的 `execFile()` 或 `spawn()`。 4. 迁移到维护良好的封装库,或者在您自己的代码中安全地调用 Tesseract。 ## 参考资料 - https://www.npmjs.com/package/node-tesseract-ocr - https://github.com/zapolnoch/node-tesseract-ocr - https://github.com/zapolnoch/node-tesseract-ocr/blob/master/src/index.js
标签:API密钥检测, child_process, CMS安全, Cutter, CVE-2026-26832, CWE-78, GNU通用公共许可证, JavaScript, MITM代理, Node.js, node-tesseract-ocr, npm包, OS命令注入, RCE, RuleLab, Tesseract-OCR, 任意代码执行, 光学字符识别, 图像处理, 安全漏洞, 攻击向量, 数据可视化, 暗色界面, 编程工具, 输入验证, 远程代码执行, 高危漏洞