Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 976

Contaminación de prototipos

Revisado porCybersecurity entrepreneur & security researcher

¿Qué es Contaminación de prototipos?

Contaminación de prototiposVulnerabilidad de JavaScript en la que una entrada no confiable modifica Object.prototype, inyectando propiedades en todos los objetos y alterando el comportamiento o llegando a RCE.


La contaminación de prototipos abusa de la cadena de prototipos de JavaScript: al establecer claves como proto, constructor.prototype o prototype durante operaciones de merge/clone/assign, el atacante muta Object.prototype y todos los objetos heredan esas propiedades. Suele aparecer en utilidades de merge recursivo, deep clone, parsers de query string o motores de plantillas que reciben JSON controlado por el usuario. Las consecuencias van de DoS y bypass de autenticación a RCE cuando las propiedades contaminadas influyen en comprobaciones de seguridad (isAdmin, sandbox, opciones de render). CVE relevantes: lodash CVE-2019-10744 y muchas otras en librerías Node.js. Mitigaciones: rechazar claves proto/constructor, usar Map u Object.create(null) para datos no confiables, congelar el prototipo y adoptar librerías más seguras.

Ejemplos

  1. 01

    Enviar {"__proto__":{"isAdmin":true}} a un endpoint que hace merge JSON y ganar privilegios admin globales.

  2. 02

    Contaminar el prototipo para alterar las opciones de render de plantillas y disparar RCE.

Preguntas frecuentes

¿Qué es Contaminación de prototipos?

Vulnerabilidad de JavaScript en la que una entrada no confiable modifica Object.prototype, inyectando propiedades en todos los objetos y alterando el comportamiento o llegando a RCE. Pertenece a la categoría de Vulnerabilidades en ciberseguridad.

¿Qué significa Contaminación de prototipos?

Vulnerabilidad de JavaScript en la que una entrada no confiable modifica Object.prototype, inyectando propiedades en todos los objetos y alterando el comportamiento o llegando a RCE.

¿Cómo defenderse de Contaminación de prototipos?

Las defensas contra Contaminación de prototipos combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.

¿Cuáles son otros nombres para Contaminación de prototipos?

Nombres alternativos comunes: Contaminación de Object.prototype, Inyección de __proto__.

Términos relacionados

Véase también