IPBUF安全漏洞报告
English
CVE-2026-26833 CVSS 9.8 严重

CVE-2026-26833 thumbler OS命令注入漏洞

披露日期: 2026-03-25

漏洞信息

漏洞编号
CVE-2026-26833
漏洞类型
OS命令注入
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
thumbler

相关标签

RCEOS Command InjectionCVE-2026-26833thumblerNode.jsCVSS 9.8

漏洞概述

thumbler是一个用于生成缩略图的npm包。在1.1.2及之前的版本中,该组件存在严重的操作系统命令注入漏洞。漏洞原因在于`thumbnail()`函数未对用户提供的`input`、`output`、`time`或`size`参数进行适当的清理或转义,直接将其拼接到Shell命令字符串中,并传递给`child_process.exec()`执行。攻击者无需用户交互或身份认证即可利用此漏洞,导致在目标服务器上执行任意操作系统命令,完全控制系统的机密性、完整性和可用性。

技术细节

该漏洞源于Node.js中不安全的命令拼接。thumbler库在处理缩略图生成任务时,调用了Node.js的`child_process.exec()`函数。该函数会启动一个系统Shell(如/bin/sh或cmd.exe)来执行传入的命令字符串。由于代码逻辑缺陷,开发者直接将外部传入的参数(如文件路径input/output、时间参数time、尺寸参数size)拼接到命令字符串中,而没有使用参数化执行或严格的输入验证(如白名单过滤字符)。
攻击者可以通过构造恶意的参数值(例如包含反引号、分号、管道符或`$(cmd)`等Shell元字符)来截断或追加原有的命令结构。当恶意输入被拼接到`child_process.exec()`中时,Shell会将其解析为独立的指令执行。由于CVSS向量显示无需认证(PR:N)且可远程利用(AV:N),攻击者可以通过向暴露的API接口发送特制的HTTP请求来触发此漏洞。成功利用后,攻击者将获得运行thumbler服务的用户权限,进而读取敏感文件、安装后门、破坏数据或进一步横向移动。

攻击链分析

STEP 1
侦察阶段
攻击者识别出目标系统使用了存在漏洞的thumbler库(版本<=1.1.2),并找到了调用thumbnail()功能的接口。
STEP 2
武器化
攻击者构造包含Shell元字符(如;、&、|)的恶意payload,旨在拼接并执行任意系统命令。
STEP 3
交付
攻击者向目标服务器发送特制的HTTP请求,将恶意payload注入到input、output、time或size参数中。
STEP 4
利用
服务器接收请求,thumbler库的thumbnail()函数调用child_process.exec()。由于未过滤输入,Shell解析器将恶意payload解析为独立指令执行。
STEP 5
达成目标
恶意系统命令在服务器上以应用进程的权限执行,攻击者获得服务器控制权,可窃取数据或植入后门。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
const thumbler = require('thumbler'); // Vulnerability: OS Command Injection in thumbler <= 1.1.2 // The 'input', 'output', 'time', or 'size' parameters are concatenated into a shell command. // Malicious payload: "; touch /tmp/pwned #" // The semicolon separates commands, and the hash comments out the rest of the original command. const maliciousInput = 'valid_image.jpg; touch /tmp/pwned #'; const output = 'output.jpg'; console.log('[*] Triggering CVE-2026-26833...'); thumbler.thumbnail({ source: maliciousInput, // Injecting payload via input parameter target: output, width: 200, height: 200 }, function(err) { if (err) { console.log('[-] Error returned (command may have still executed):', err); } else { console.log('[+] Thumbnail generation request processed.'); } });

影响范围

thumbler <= 1.1.2

防御指南

临时缓解措施
建议立即检查并更新thumbler依赖库。若无法立即升级,应实施严格的输入过滤机制,确保传入thumbnail函数的参数仅包含合法字符(如字母、数字、特定符号),禁止分号、反引号、管道符等Shell元字符。同时,限制Web服务器或应用运行账户的权限,以减小漏洞被利用后的影响范围。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表