
Avis pour textract ⌯⌲ 15 000 téléchargements hebdomadaires
textract jusqu'à la version 2.5.0 permet une injection de commande OS via
le chemin de fichier fourni à plusieurs extracteurs. Plusieurs chemins de code
passent ce chemin de fichier dans child_process.exec() avec un assainissement insuffisant.
Un attaquant capable d'influencer le nom ou le chemin du fichier peut s'échapper de
la ligne de commande et exécuter des commandes arbitraires sur l'hôte.
| Produit | Versions affectées | Version corrigée |
|---|
| textract | toutes les versions jusqu'à 2.5.0 | aucun correctif disponible au 24/03/2026 |
CVE-2026-26831CWE-78 - Injection de commande OS9.8 (Critique)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 exemple est l'extracteur doc.js :
exec('antiword -M UTF-8.txt "' + filePath + '"', ...)
Un autre est la gestion du chemin rtf.js, qui n'échappe que les espaces
avant d'exécuter la commande shell. Cela n'arrête pas les métacaractères
tels que ;, les backticks ou $().
Les applications utilisent souvent textract sur des documents téléchargés par l'utilisateur. Dans ce
contexte, un nom de fichier malveillant peut déclencher l'exécution de commandes lors de l'extraction
de texte.
Un nom de fichier d'entrée tel que :
test";whoami;".doc
peut sortir de la chaîne de commande entre guillemets lorsque l'extracteur vulnérable s'exécute.
Aucune version npm corrigée n'est disponible au moment de la rédaction.
Si vous dépendez toujours de ce package :
textract.exec() par une exécution de processus sécurisée par arguments.