
Aviso para textract ⌯⌲ 15 000 descargas semanales
textract hasta la versión 2.5.0 permite la inyección de comandos del sistema operativo a través de la ruta de archivo proporcionada a varios extractores. Varias rutas de código pasan esa ruta de archivo a child_process.exec() con una sanitización inadecuada. Un atacante que pueda influir en el nombre de archivo o en la ruta puede escapar de la línea de comandos y ejecutar comandos arbitrarios en el host.
| Producto | Versiones afectadas | Versión corregida |
|---|---|---|
| textract | todas las versiones hasta 2.5.0 | sin corrección disponible a fecha de 2026-03-24 |
CVE-2026-26831CWE-78 - Inyección de comandos del sistema operativo9.8 (Crítico)CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:Hlib/extractors/doc.jslib/extractors/rtf.jslib/extractors/dxf.jslib/extractors/images.jslib/util.jsUn ejemplo es el extractor doc.js:
exec('antiword -m UTF-8.txt "' + filePath + '"', ...)
Otro es el manejo de rutas en rtf.js, que solo escapa los espacios antes de ejecutar el comando del shell. Eso no detiene metacaracteres como ;, comillas invertidas (backticks) o $().
Las aplicaciones suelen usar textract en documentos subidos por los usuarios. En esa configuración, un nombre de archivo malicioso puede desencadenar la ejecución de comandos durante la extracción de texto.
Un nombre de archivo de entrada como:
test";whoami;".doc
puede escapar de la cadena de comando entre comillas cuando se ejecuta el extractor vulnerable.
No hay ninguna versión npm corregida disponible en el momento de redactar esto.
Si todavía dependes de este paquete:
textract.exec() con ejecución de procesos segura para argumentos.