
Ceci est une preuve de concept démontrant CVE-2020-8158, une vulnérabilité critique de pollution de prototype dans les versions TypeORM < 0.2.25.
Ceci est une preuve de concept démontrant la CVE-2020-8158, une vulnérabilité critique de pollution de prototype dans les versions de TypeORM < 0.2.25.
Les attaquants peuvent :
La vulnérabilité réside dans le traitement de la désérialisation d'objets par TypeORM lors du traitement des résultats de requêtes de base de données. La bibliothèque fusionne incorrectement les données contrôlées par l'utilisateur dans des objets sans nettoyer les clés polluantes du prototype comme , et .
__proto__constructorprototypeLe problème se trouve dans le processus d'hydratation/désérialisation des entités où TypeORM attribue récursivement des propriétés à partir des résultats de requêtes brutes aux objets d'entité sans validation appropriée.
vulnerable-app.ts - Application TypeORM vulnérable (version < 0.2.25)exploit.ts - Exploit de preuve de conceptpatched-app.ts - Version corrigée (version >= 0.2.25)package.json - DépendancesVoir SETUP.md pour des instructions détaillées d'installation et d'exploitation.