Une vulnérabilité critique (score CVSS 9.8) vient d'être divulguée dans une bibliothèque de parsing YAML largement utilisée dans l'écosystème Node.js. La faille, de type prototype pollution, permet à un attaquant qui contrôle le contenu d'un fichier YAML parsé par l'application de modifier le prototype global de JavaScript, pouvant mener à une exécution de code arbitraire dans certaines configurations.
Qu'est-ce que la prototype pollution ?
JavaScript repose sur un modèle d'héritage par prototype. Tous les objets héritent d'Object.prototype. Une attaque de prototype pollution consiste à modifier cet objet partagé en passant des clés spéciales dans des données parsées, typiquement __proto__ ou constructor.prototype.
Si la bibliothèque de parsing n'assainit pas ces clés, un fichier YAML de la forme suivante permet de modifier le comportement global de l'application :
__proto__:
isAdmin: true
toString: !!js/function 'function(){return process.mainModule.require("child_process").execSync("id")}'
L'impact concret dépend de ce que l'application fait avec les objets parsés, mais dans les scénarios les plus sévères, cela permet d'élever ses privilèges ou d'exécuter des commandes système.
Qui est concerné ?
La bibliothèque affectée est utilisée comme dépendance directe ou transitive dans un très grand nombre de projets Node.js, notamment dans des outils de build, des frameworks de test et des applications de configuration. Si vous parsez des fichiers YAML dont le contenu peut être influencé par un utilisateur ou une source externe non fiable, vous êtes potentiellement exposé.
Pour vérifier si vous utilisez une version vulnérable :
npm ls yaml
npm audit
La correction
Un patch a été publié dans les heures suivant la divulgation. La mise à jour vers la version corrigée est la seule mitigation fiable :
npm update yaml
# ou
npm install yaml@latest
En attendant la mise à jour, si vous ne pouvez pas patcher immédiatement : valider et assainir les entrées YAML avant parsing, rejeter tout fichier contenant les clés __proto__, constructor ou prototype au niveau des règles de validation en amont.
La leçon plus large
Cette vulnérabilité illustre un pattern récurrent : les bibliothèques de parsing (YAML, JSON, XML, CSV) sont des surfaces d'attaque à fort risque car elles traitent des données potentiellement contrôlées par des tiers. La règle de base : ne jamais parser sans valider, ne jamais faire confiance au contenu d'un fichier de configuration externe sans vérification de son intégrité.
- GitHub Security Advisories — GitHub, 6 août 2026
- National Vulnerability Database — NIST, 6 août 2026
- Prototype Pollution expliqué — PortSwigger, 2025