Prototip kirliliği
JavaScript açığı: saldırgan Object.prototype’ı değiştirir ve bu, uygulamadaki her nesneyi etkiler.
JavaScript’in kalıtım modeline dayanır: her nesne Object.prototype’tan miras alır. obj["__proto__"]["isAdmin"] = true yaparsanız diğer bütün nesneler de isAdmin = true olur. Klasik açıklar: lodash’taki derin birleştirme/klonlama (CVE-2018-16487, 2019), jQuery $.extend, pek çok Express gövde ayrıştırma paketi. Yük doğru prototip niteliğini (shell, argv vb.) seçerse çoğu zaman RCE’ye tırmanır. Savunmalar: Object.freeze(Object.prototype), Node’da --disable-proto=throw, güvenilmeyen girdiyi derin birleştirmemek.