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
0 Fixed in: 2.0.5 npm install @phun-ky/defaults-deep@2.0.5 References
- https://github.com/phun-ky/defaults-deep/security/advisories/GHSA-mj3g-7xcc-x4vh [WEB]
- https://github.com/phun-ky/defaults-deep/pull/49 [WEB]
- https://github.com/phun-ky/defaults-deep/commit/807dba930f8718f9126cad59d949b8fd3539b059 [WEB]
- https://github.com/phun-ky/defaults-deep [PACKAGE]
- https://github.com/phun-ky/defaults-deep/releases/tag/2.0.5 [WEB]