
pdf-image のバージョン 2.0.0 までには、pdfFilePath 引数を介した OS コマンドインジェクションの脆弱性があります。このパッケージは util.format() でシェルコマンド文字列を構築し、child_process.exec() で実行します。アプリケーションが攻撃者によって制御されたファイルパスを PDFImage に渡すと、そのパスに含まれるシェルのメタ文字によって任意のコマンドが実行される可能性があります。
| 製品 | 影響を受けるバージョン | 修正バージョン |
|---|---|---|
| pdf-image | 2.0.0 までの全バージョン | 2026-03-24 時点で修正版なし |
CVE-2026-26830CWE-78 - OS コマンドインジェクション9.8 (緊急)CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:Hindex.js脆弱なコードパスは constructGetInfoCommand() と constructConvertCommandForPage() に到達し、いずれも child_process.exec() を呼び出す前に PDF パスをシェルコマンドに展開します。
ユーザーが制御する PDF パスを受け入れ、それを pdf-image に渡すアプリケーションは、ホストシステム上で攻撃者によって提供されたシェルコマンドを実行してしまう可能性があります。
const { PDFImage } = require("pdf-image");
const pdfImage = new PDFImage('test.pdf"; touch /tmp/pwned; echo "');
pdfImage.getInfo();
注入したコマンドが実行されると、プロセスは /tmp/pwned を作成します。
本稿執筆時点では、修正済みの npm リリースは提供されていません。
引き続きこのパッケージに依存する場合は、以下の対応を行ってください:
PDFImage に渡すのをやめてください。execFile() や spawn() などの引数安全なプロセス実行に置き換えてください。