zebbernCVE/CVE-2026-26833
GitHub: zebbernCVE/CVE-2026-26833
记录 thumbler npm 包中严重命令注入漏洞(CVE-2026-26833)的安全公告,包含漏洞详情、PoC 代码和缓解建议。
Stars: 0 | Forks: 0
# CVE-2026-26833:thumbler 中的 OS 命令注入
## 摘要
`thumbler` 到 `1.1.2` 版本允许在
`lib/thumbler.js` 中的 `thumbnail()` 进行 OS 命令注入。该包将
`input`、`output`、`time` 和 `size` 的值拼接成一个单独的 `ffmpeg`
命令字符串,并使用 `child_process.exec()` 执行该字符串。
控制其中一个值的攻击者可以注入 shell 语法
并运行任意命令。
## 受影响产品
| 产品 | 受影响版本 | 修复版本 |
| --- | --- | --- |
| thumbler | 1.1.2 及之前所有版本 | 截至 2026-03-24 尚无可用修复 |
## 漏洞详情
- CVE ID:`CVE-2026-26833`
- CWE:`CWE-78` - OS Command Injection (OS 命令注入)
- CVSS 3.1:`9.8` (`Critical` - 严重)
- 向量:`CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H`
- 受影响组件:`lib/thumbler.js`,`thumbnail()`
易受攻击的代码路径构造了如下 shell 字符串:
```
exec(
'ffmpeg -ss ' + time + ' -i "' + input + '" -vframes 1 -s ' +
size + ' "' + output + '"',
...
);
```
由于命令是作为字符串组装的,因此每个攻击者控制的
字段都是一个潜在的注入点。
## 技术影响
任何从用户控制的媒体生成缩略图的服务都可能
在调用 `thumbnail()` 时最终在主机上执行命令。
## 概念验证
```
require("thumbler").thumbnail(
'test.mp4"; id > /tmp/pwned; echo "',
"/tmp/out.jpg",
{},
() => {}
);
```
## 缓解措施
截至本文撰写之时,尚无可用的 npm 修复版本。
如果您仍然依赖此包:
1. 请勿将不受信任的数据传递给 `thumbnail()`。
2. 将 shell 字符串拼接替换为参数安全的进程
执行方式。
3. 迁移到维护中的缩略图生成库或已修复的分支。
## 参考资料
- https://www.npmjs.com/package/thumbler
- https://github.com/mmahrous/thumbler
- https://github.com/mmahrous/thumbler/blob/master/lib/thumbler.js
标签:Child Process, CVE-2026-26833, CWE-78, FFmpeg, GNU通用公共许可证, MITM代理, Node.js, NPM包, OSV-Scalibr, OS命令注入, RCE, Shell注入, Thumbler, 任意命令执行, 安全公告, 文档安全, 暗色界面, 编程工具, 视频处理, 视频缩略图, 软件开发工具包, 输入验证缺失, 远程代码执行, 高危漏洞