Description
Mongoose is a MongoDB object modeling tool designed to work in an asynchronous environment. Prior to 6.13.10, 7.8.10, 8.24.1, and 9.7.2, passing a user-controlled update such as MyModel.updateOne(filter, req.body) can exploit Mongoose update casting with a __proto__.x dotted path under $set. Schema.prototype.path and Schema.prototype._getPathType can treat inherited properties of schema.paths and schema.nested as schema types, allowing the casting process to set $fullPath and $parentSchemaDocArray on Object.prototype before throwing. This prototype pollution makes those properties visible on newly created objects and can cause application integrity and availability impacts. This issue is fixed in versions 6.13.10, 7.8.10, 8.24.1, and 9.7.2.
References5
- github.com/Automattic/mongoose/commit/35a3f33bc9a0a28671f99e3c5…
- github.com/Automattic/mongoose/commit/7285466b860d3b511f8d07b2a…
- github.com/Automattic/mongoose/commit/953d085bee5a16b5d6c5af33a…
- github.com/Automattic/mongoose/commit/fab793b747131c68927888cba…
- github.com/Automattic/mongoose/security/advisories/GHSA-664h-wq…
Metrics
- CVSS 3.1
-
6.5
MEDIUM
Score source: CNA
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L - EPSS — exploit probability
- 1% percentile: 44 · as of 12 November 2026
- CWE
- CWE-1321
Could this be exploited in your environment?
A patch closes the known hole. A penetration test shows what an attacker can still reach — with proof.