
Advisory per textract ⌯⌲ 15.000 download settimanali
textract fino alla versione 2.5.0 consente l'iniezione di comandi del sistema operativo tramite il percorso del file fornito a molteplici estrattori. Diversi percorsi di codice passano quel percorso del file a child_process.exec() con una sanificazione inadeguata. Un attaccante che può influenzare il nome del file o il percorso può uscire dalla riga di comando ed eseguire comandi arbitrari sul sistema.
| Prodotto | Versioni interessate | Versione corretta |
|---|
| textract | tutte le versioni fino alla 2.5.0 | nessuna correzione disponibile al 2026-03-24 |
CVE-2026-26831CWE-78 - Iniezione di comandi del sistema operativo9.8 (Critico)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 esempio è l'estrattore doc.js:
exec('antiword -m UTF-8.txt "' + filePath + '"', ...)
Un altro è la gestione del percorso in rtf.js, che esegue l'escape solo degli spazi prima di eseguire il comando di shell. Questo non blocca metacaratteri come ;, backtick o $().
Le applicazioni usano spesso textract su documenti caricati dagli utenti. In questa configurazione, un nome di file malevolo può innescare l'esecuzione di comandi durante l'estrazione del testo.
Un nome di file di input come:
test";whoami;".doc
può far uscire dalla stringa di comando tra virgolette quando l'estrattore vulnerabile viene eseguito.
Al momento della redazione non è disponibile alcuna versione npm che risolva il problema.
Se dipendi ancora da questo pacchetto:
textract percorsi di file controllati dall'attaccante.exec() con un'esecuzione di processi sicura rispetto agli argomenti.