Prototype Pollution
hackingDéfinition
Vulnérabilité JavaScript permettant de modifier le prototype Object global via des propriétés spéciales (__proto__, constructor), causant comportements inattendus ou RCE dans les applications Node.js.
Description
Le Prototype Pollution modifie le prototype global Object en JavaScript via des propriétés spéciales comme __proto__, constructor.prototype ou Object.prototype. Cette manipulation affecte tous les objets héritant de Object.prototype, causant des comportements inattendus ou une RCE dans Node.js.
Exploitation
Un payload comme {"__proto__": {"admin": true}} dans une fonction de fusion d'objets propage la propriété admin à tous les objets. Dans des contextes Node.js, des gadgets spécifiques permettent d'escalader vers une exécution de code arbitraire.
Défense
- Utiliser Object.create(null) pour créer des objets sans prototype lors du traitement de données non fiables
- Valider les clés des objets et rejeter __proto__, constructor et prototype comme clés valides
- Utiliser des bibliothèques de fusion d'objets récentes qui corrigent ce vecteur d'attaque
Besoin d'un expert sur ce sujet ?
Audit, pentest, conformité ISO 27001, développement IA sécurisé — demandez un devis gratuit.
Demander un devis