CVE-2026-54335 Feathersjs: Prototype pollution in @feathersjs/commons _.merge via JSON-parsed __proto__
Prototype pollution in FeathersJS allows attackers to inject properties into Object.prototype via JSON input, potentially leading to code execution.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-54335?
CVE-2026-54335 is a low-severity code injection vulnerability in feathersjs feathers, published on 17 Jul 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
Feathersjs is a framework for creating web APIs and real-time applications with TypeScript or JavaScript. In 5.0.44 and earlier, the _.merge(target, source) utility exported by @feathersjs/commons recursively merges source into target by iterating Object.keys(source). When source was produced by JSON.parse and contains a __proto__, constructor, or prototype key, that key is returned as an own-enumerable property; the recursive merge then resolves target['__proto__'] to Object.prototype and writes attacker-supplied properties onto it, polluting the prototype for all plain objects in the process for the lifetime of the Node process. This issue is fixed in version 5.0.45.
Weakness: CWE-1321
Which versions are affected by CVE-2026-54335?
2 open source packages ship an affected version, including @feathersjs/commons.
| Package | Affected | Fixed in |
|---|---|---|
@feathersjs/commons npm | All versions | 5.0.45 |
@feathersjs/commons npm | All versions | 5.0.45 |
How do I fix CVE-2026-54335?
Upgrade @feathersjs/commons to 5.0.45 or later.
Upgrade, and never evaluate templates, expressions or code built from user input. More about Code injection.
Is CVE-2026-54335 being exploited?
There is no known exploitation of CVE-2026-54335 in the wild and no public exploit code.
Sources
Also known as GHSA-28xv-ph75-77wh.