Saltar al contenido principal

Prototype Pollution

En JavaScript, modificas Object.prototype y la propiedad aparece en TODOS los objetos del proceso.

Categoría: Web · Vectores avanzados 🎯 Trinchera — En JavaScript, modificas Object.prototype y la propiedad aparece en TODOS los objetos del proceso. Si una librería posterior lee una propiedad sin verificar pertenencia (obj.isAdmin en vez de Object.hasOwn(obj, 'isAdmin')), recibe tu valor. 🔗 Kill chain — Pollution → gadget en otra dependencia. Gadgets famosos 2025: Axios pre-1.15.0Object.prototype.parseReviver contamina cada JSON.parse de cada response, permitiendo robar API keys (Hacker Wire). DOMPurify 3.0.1-3.3.3 — fallback en config parser hereda de Object.prototype, convertido en bypass XSS por trace37 labs / CVE-2026-41238. 📡 Huella defensiva — Difícil de detectar en runtime. Análisis estático con GHunter (USENIX 2024) encuentra gadgets universales en runtimes JS. ⚠️ Falso amigo — Limpiar sólo __proto__ no basta — constructor.prototype también funciona en muchas libs viejas. 🛡️ RemediaciónObject.create(null), Object.freeze(Object.prototype), deep-clone con structured-clone, validación con JSON Schema/Zod.

Volver al glosario completo Última actualización: 2026-06-11