
Уведомление для node-tesseract-ocr ⌯⌲ 50 000 еженедельных загрузок
node-tesseract-ocr вплоть до версии 2.2.1 позволяет внедрение команд ОС в функции recognize() в src/index.js. Пакет формирует строку shell-команды и выполняет её с помощью child_process.exec(). Поскольку путь к входному файлу лишь заключается в двойные кавычки, злоумышленник может внедрить синтаксис оболочки через специально сформированный путь к файлу.
| Продукт | Затронутые версии | Исправленная версия |
|---|
| node-tesseract-ocr | все версии до 2.2.1 включительно | исправление недоступно по состоянию на 2026-03-24 |
CVE-2026-26832CWE-78 - внедрение команд ОС9.8 (Critical)CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:Hsrc/index.js, recognize()Уязвимый шаблон кода:
const command = [binary, inputOption, "stdout", ...options].join(" ");
exec(command, ...);
Эта строка команды передаётся в парсер оболочки. Вредоносный путь к файлу может вырваться из заключённого в кавычки аргумента.
Приложения, выполняющие OCR на предоставленных пользователем изображениях, могут сделать хост-систему уязвимой к выполнению команд, если они передают недоверенные пути в recognize().
test.jpg"; touch /tmp/pwned; echo "x
На момент написания исправленная npm-версия недоступна.
Если вы всё ещё используете этот пакет:
join(" ").execFile() или spawn() с явными аргументами.