NoSQL Injection via WebSocket id Parameter in MongoDB Adapter
Description
Feathersjs is a framework for creating web APIs and real-time applications with TypeScript or JavaScript. From 5.0.0 to before 5.0.42, Socket.IO clients can send arbitrary JavaScript objects as the id argument to any service method (get, patch, update, remove). The transport layer performs no type checking on this argument. When the service uses the MongoDB adapter, these objects pass through getObjectId() and land directly in the MongoDB query as operators. Sending {$ne: null} as the id matches every document in the collection. This vulnerability is fixed in 5.0.42.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
FeathersJS 5.0.0–5.0.41 allows NoSQL injection via Socket.IO by passing arbitrary objects as the id parameter to MongoDB adapter service methods.
Vulnerability
Overview
CVE-2026-29793 is a NoSQL injection vulnerability in the FeathersJS framework, affecting versions 5.0.0 through 5.0.41. The root cause lies in the transport layer, which does not validate the type of the id argument sent by Socket.IO clients. When a client sends an arbitrary JavaScript object (e.g., {$ne: null}) as the id parameter to any service method (get, patch, update, remove), the MongoDB adapter passes this object through getObjectId() and directly into the MongoDB query as an operator [1][2].
Exploitation
An unauthenticated attacker can exploit this by sending a specially crafted Socket.IO message containing a MongoDB operator object as the id. No authentication is required because the vulnerability exists in the transport layer before any authorization checks. The attack surface is any FeathersJS application using the MongoDB adapter and exposing Socket.IO endpoints [2].
Impact
By sending {$ne: null} as the id, an attacker can match every document in the targeted collection, effectively bypassing intended access controls. This can lead to unauthorized reading, updating, or deleting of all records in the collection, depending on the service method invoked. The impact is high, as it compromises the confidentiality, integrity, and availability of the data [1][2].
Mitigation
The vulnerability is fixed in FeathersJS version 5.0.42. Users are strongly advised to upgrade to this version or later. No workarounds are documented; the fix involves adding type checking the type of the id argument in the transport layer to reject non-string values [2].
AI Insight generated on May 18, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
@feathersjs/mongodbnpm | >= 5.0.0, < 5.0.42 | 5.0.42 |
Affected products
2- Range: >=5.0.0 <5.0.42
- @feathersjs/mongodbv5Range: >= 5.0.0, < 5.0.42
Patches
0No patches discovered yet.
Vulnerability mechanics
AI mechanics synthesis has not run for this CVE yet.
References
3- github.com/advisories/GHSA-p9xr-7p9p-gpqxghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2026-29793ghsaADVISORY
- github.com/feathersjs/feathers/security/advisories/GHSA-p9xr-7p9p-gpqxghsax_refsource_CONFIRMWEB
News mentions
0No linked articles in our index yet.