
Уведомление для pdf-image ⌯⌲ 10 000 еженедельных загрузок
pdf-image вплоть до версии 2.0.0 допускает внедрение команд ОС через аргумент pdfFilePath. Пакет формирует строки команд оболочки с помощью util.format() и выполняет их через child_process.exec(). Если приложение передаёт управляемый атакующим путь к файлу в PDFImage, метасимволы оболочки в этом пути могут привести к выполнению произвольных команд.
| Продукт | Затронутые версии | Исправленная версия |
|---|---|---|
| pdf-image | все версии вплоть до 2.0.0 | исправление недоступно по состоянию на 2026-03-24 |
CVE-2026-26830CWE-78 — внедрение команд ОС9.8 (Критический)CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:Hindex.jsУязвимый путь выполнения кода проходит через constructGetInfoCommand() и constructConvertCommandForPage(), обе функции подставляют путь к PDF в команду оболочки перед вызовом child_process.exec().
Любое приложение, которое принимает управляемый пользователем путь к 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() с массивом.