CVE-2026-73562
mediumpriority · track · 0EPSS 0.005 · 42 %ileEUUSEPSS · scored 2026-10-23
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.
cvss
Technical severity, 0–10. One row per scoring source.
base score 0–10 · higher = more severe · hover a vector to decode
ssvc
A stakeholder decision — act, attend, or track — from exploitation and impact.
weaknesses
The CWE weakness classes this flaw belongs to.
affected products (12)
Products and version ranges known to be affected.
advisories (2)
Vendor and ecosystem advisories describing this.
- GHSA-664h-wqgq-64gwMongoose: Prototype pollution in mongoose update casting via __proto__-prefixed dotted path (Schema._getSchema/path getter)2026-07-24ghsa · osvUS
### Impact _What kind of vulnerability is it? Who is impacted?_ Prototype pollution in update casting: passing a user-controlled update to a Mongoose update, like `MyModel.updateOne(filter, req.body)`, can cause Mongoose to set `$fullPath` and `$parentSchemaDocArray` on `Object.prototype`. Example: ```javascript const mongoose = require('mongoose'); console.log('before:', Object.prototype.$fullPath); // undefined const User = mongoose.model('User', new mongoose.Schema({ name: String })); const malicious = JSON.parse('{"$set": {"__proto__.x": "anything"}}'); // attacker-controlled update const q = User.updateOne({}, {}); try { q._castUpdate(malicious); } catch (e) { /* throws AFTER the pollution side-effect */ } console.log('after :', Object.prototype.$fullPath); // "__proto__" console.log('enumerable:', Object.prototype.propertyIsEnumerable('$fullPath')); // true console.log('fresh {}:', ({}).$fullPath); // "__proto__" ``` ### Patches _Has the problem been patched? What versions should users upgrade to?_ 9.7.2, 8.24.1. 7.8.10, 6.13.10 ### Workarounds _Is there a way for users to fix or remediate the vulnerability without upgrading?_ Check user-controlled updates for own `__proto__` properties before passing to Mongoose ### References _Are there any links users can visit to find out more?_
- BIT-mongoose-2026-73562Mongoose: Prototype pollution in the update casting via __proto__-prefixed dotted path (Schema._getSchema/path getter)2026-08-19vendor · osvUS
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.
also known as (4)
Other names and identifiers for this entity.
- EUVD-2026-58176enisa_euvd
- GHSA-664h-wqgq-64gwenisa_euvd
- BIT-mongoose-2026-73562osv
- GHSA-664h-wqgq-64gwosv
sources
Which sources assert this record, and when.
references (10)
External citations — patches, advisories, analysis.
- https://github.com/Automattic/mongoose/commit/35a3f33bc9a0a28671f99e3c5010000425650d0fenisa_euvd
- https://github.com/Automattic/mongoose/commit/7285466b860d3b511f8d07b2ab72656703ee707aenisa_euvd
- https://github.com/Automattic/mongoose/commit/953d085bee5a16b5d6c5af33a156e6314d6d9a45enisa_euvd
- https://github.com/Automattic/mongoose/commit/fab793b747131c68927888cba41cf3e6d6593740enisa_euvd
- https://github.com/Automattic/mongoose/security/advisories/GHSA-664h-wqgq-64gwenisa_euvd
- https://github.com/Automattic/mongoose/commit/35a3f33bc9a0a28671f99e3c5010000425650d0fnvd
- https://github.com/Automattic/mongoose/commit/7285466b860d3b511f8d07b2ab72656703ee707anvd
- https://github.com/Automattic/mongoose/commit/953d085bee5a16b5d6c5af33a156e6314d6d9a45nvd
Attackers weaponise vulnerabilities like this against internet-exposed services. See what is exposed on your perimeter with a free passive scan.
Free scan