
thumbler のバージョン 1.1.2 以前では、lib/thumbler.js の thumbnail() に OS コマンドインジェクションの脆弱性があります。このパッケージは input、output、time、size の値を単一の ffmpeg コマンド文字列に連結し、その文字列を child_process.exec() で実行します。これらの値のいずれかを制御できる攻撃者は、シェル構文を注入して任意のコマンドを実行できます。
| 製品 | 影響を受けるバージョン | 修正バージョン |
|---|---|---|
| thumbler | 1.1.2 までの全バージョン | 2026-03-24 時点で修正版なし |
CVE-2026-26833CWE-78 - OS コマンドインジェクション9.8 (Critical)CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:Hlib/thumbler.js の thumbnail()脆弱なコードパスは、次のシェル文字列を構築します。
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 リリースは利用できません。
このパッケージに依存し続ける場合は、次の対応を行ってください。
thumbnail() に信頼できないデータを渡さない。