CVE-2026-9277
shell-quote quote() ne valide pas les formes de jetons d’objet, permettant une injection de commande via des terminateurs de ligne dans .op
- Publié
- 22 mai 2026
- Mise à jour
- 14 sept. 2026
- Attribution de CNA
- harborist
- Preuve observée
- 17 août 2026
CVSS primaire
nvd · CVSS 4.0
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XFaible · 30 prochains jours
- Percentile
- 56,1 %
- Date du modèle
- 21 sept. 2026
EPSS est une estimation statistique, et non une certitude ou une mesure d'impact. Combinez-le avec CVSS, le statut KEV, l'exposition et votre environnement.
Résumé
# La fonction `quote()` de shell-quote ne validait pas les entrées de type objet-token par rapport au modèle d'opérateur utilisé par `parse()`. Le champ `.op` était échappé caractère par caractère avec `/(.)/g`, ce qui en JavaScript ne correspond pas aux terminateurs de ligne (\n, \r, U+2028, U+2029). Un terminateur de ligne dans `.op` passait donc sans échappement dans la sortie ; les shells POSIX traitent un saut de ligne littéral comme un séparateur de commandes, de sorte que tout contenu après celui-ci s'exécuterait comme une seconde commande. Le chemin de code vulnérable est accessible de deux manières : (1) la construction directe de `{ op: '...\n...' }` à partir d'une entrée externe, et (2) via `parse(cmd, envFn)` lorsque `envFn` renvoie des objets-tokens dont `.op` est influencé par un attaquant. Les deux constituent une surface d'API documentée. Correction apportée en remplaçant l'échappement par caractère par une validation stricte de la forme : `.op` doit correspondre à la liste blanche des opérateurs de contrôle de l'analyseur ; `{ op: 'glob', pattern }` valide `pattern` et interdit les terminateurs de ligne ; `{ comment }` valide `comment` et interdit les terminateurs de ligne ; toute autre forme d'objet lève une `TypeError`.
Sources
1Preuve de concept pour CVE-2026-9277, une vulnérabilité d'injection de commandes dans la bibliothèque shell-quote. Effectue un parcours JSON récursif avec mutation combinatoire pour déclencher une exécution de code à distance (RCE), prenant en charge la vérification OOB et une journalisation sans bruit.
Utilisation responsable
Utilisez les informations de vulnérabilité uniquement sur les systèmes que vous possédez ou que vous êtes autorisé à tester. Kitploit renvoie aux métadonnées de la recherche publique et ne stocke pas de code d'exploitation ni de charges utiles malveillantes.