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.
Published: 2026-07-17
Score: 3.7 Low
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

A flaw in the @feathersjs/commons _.merge function allows an attacker to inject a __proto__ property into a source object that has been JSON.parsed. During the recursive merge, the __proto__ key resolves to Object.prototype, enabling the attacker to write properties onto the prototype of all plain objects created in the process. This modification persists for the lifetime of the Node process, potentially affecting all plain objects created within that process.

Affected Systems

The vulnerability affects the Feathersjs framework, specifically versions 5.0.44 and earlier. Any application that incorporates feathersjs:feathers and uses the @feathersjs/commons _.merge utility to merge JSON data from untrusted sources is potentially impacted. All projects depending on these legacy versions are at risk until a fixed release is applied.

Risk and Exploitability

The CVSS score of 3.7 categorizes this issue as low severity, and the EPSS score of <1% indicates that exploitation is unlikely in the wild. It is not listed in the CISA KEV catalog. The attack vector is inferred to be local code executed within the application— input that is parsed and then merged. Because prototype pollution affects all objects in the process, consequences can be far‑reaching if the application later depends on that polluted prototype for newly created objects.

Generated by OpenCVE AI on August 1, 2026 at 08:13 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Feathers to version 5.0.45 or later, which removes the vulnerability.
  • If an immediate upgrade is not feasible, sanitize all JSON objects before passing them to _.merge by deleting or rejecting any __proto__, constructor, or prototype keys.
  • Verify that no custom merge logic or third‑party libraries continue to use the insecure _.merge implementation and replace them with safe alternatives.

Generated by OpenCVE AI on August 1, 2026 at 08:13 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-28xv-ph75-77wh Prototype pollution in @feathersjs/commons _.merge via JSON-parsed __proto__
History

Mon, 20 Jul 2026 18:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Fri, 17 Jul 2026 22:45:00 +0000

Type Values Removed Values Added
First Time appeared Feathersjs
Feathersjs feathers
Vendors & Products Feathersjs
Feathersjs feathers

Fri, 17 Jul 2026 21:30:00 +0000

Type Values Removed Values Added
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.
Title Feathersjs: Prototype pollution in @feathersjs/commons _.merge via JSON-parsed __proto__
Weaknesses CWE-1321
References
Metrics cvssV3_1

{'score': 3.7, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N'}


Subscriptions

Feathersjs Feathers
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-20T17:38:02.512Z

Reserved: 2026-06-12T19:23:22.316Z

Link: CVE-2026-54335

cve-icon Vulnrichment

Updated: 2026-07-20T17:37:56.995Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-01T08:15:03Z

Weaknesses
  • CWE-1321

    Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution')