VDB
KO
HIGH 7.3

GHSA-mj3g-7xcc-x4vh

@phun-ky/defaults-deep Has a Prototype Pollution issue via Unsafe Recursive Property Merging

Quick fix

GHSA-mj3g-7xcc-x4vh — @phun-ky/defaults-deep: upgrade to the fixed version with the command below.

npm install @phun-ky/defaults-deep@2.0.5

Details

### Impact

A prototype pollution vulnerability exists in @phun-ky/defaults-deep prior to version 2.0.5.

The library recursively merged user-supplied objects without filtering unsafe property names such as `__proto__`, `constructor`, and `prototype`. An attacker able to supply crafted input could cause properties to be written to `Object.prototype`, resulting in prototype pollution affecting all objects within the running process.

Applications that pass untrusted input to `defaultsDeep()` may be impacted. Depending on how the application uses merged objects, this could lead to unexpected behavior, logic bypasses, denial of service, or other security issues.

### Patches

This issue has been fixed in version 2.0.5.

Users should upgrade to version 2.0.5 or later.

The fix prevents unsafe prototype-related keys (`__proto__`, `constructor`, and `prototype`) from being processed during recursive merge operations and includes regression tests covering known prototype pollution vectors.

### Workarounds

Users unable to upgrade should ensure that untrusted input is sanitized before being passed to `defaultsDeep()`.

At a minimum, applications should reject or remove the following property names from all levels of user-controlled objects:

- `__proto__` - `constructor` - `prototype`

Upgrading to a patched version remains the recommended mitigation.

Are you affected?

Enter the version of the package you're using.

Affected packages

npm / @phun-ky/defaults-deep
Introduced in: 0 Fixed in: 2.0.5
Fix npm install @phun-ky/defaults-deep@2.0.5

References