
Sicherheitshinweis für textract ⌯⌲ 15 000 wöchentliche Downloads
textract bis einschließlich Version 2.5.0 ermöglicht die OS-Befehlseinschleusung über den Dateipfad, der mehreren Extractors übergeben wird. Mehrere Codepfade übergeben diesen Dateipfad an child_process.exec() mit unzureichender Bereinigung. Ein Angreifer, der den Dateinamen oder -pfad beeinflussen kann, kann die Befehlszeile verlassen und beliebige Befehle auf dem Host ausführen.
| Produkt | Betroffene Versionen | Behobene Version |
|---|---|---|
| textract | alle Versionen bis einschließlich 2.5.0 | zum 24.03.2026 kein Fix verfügbar |
CVE-2026-26831CWE-78 - OS-Befehlseinschleusung9.8 (Kritisch)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.jsEin Beispiel ist der Extractor doc.js:
exec('antiword -m UTF-8.txt "' + filePath + '"', ...)
Ein weiteres Beispiel ist die Pfadverarbeitung in rtf.js, die vor dem Ausführen des Shell-Befehls nur Leerzeichen escaped. Das stoppt Metazeichen wie ;, Backticks oder $() nicht.
Anwendungen verwenden textract häufig für vom Benutzer hochgeladene Dokumente. In diesem Szenario kann ein bösartiger Dateiname während der Textextraktion eine Befehlsausführung auslösen.
Ein Eingabedateiname wie:
test";whoami;".doc
kann aus der in Anführungszeichen gesetzten Befehlszeichenfolge ausbrechen, wenn der anfällige Extractor ausgeführt wird.
Zum Zeitpunkt der Erstellung dieses Dokuments ist keine behobene npm-Version verfügbar.
Falls Sie weiterhin von diesem Paket abhängig sind:
textract.exec() durch argumentsichere Prozessausführung.