CVE-2022-21189
Prototype Pollution
Also known as GHSA-3xgx-r9j4-qw9w
Published 4 y ago · modified 4 mo ago · JSON
Summary
The package dexie before 3.2.2, from 4.0.0-alpha.1 and before 4.0.0-alpha.3 are vulnerable to Prototype Pollution in the Dexie.setByKeyPath(obj, keyPath, value) function which does not properly check the keys being set (like __proto__ or constructor). This can allow an attacker to add/modify properties of the Object.prototype leading to prototype pollution vulnerability. **Note:** This vulnerability can occur in multiple ways, for example when modifying a collection with untrusted user input.
Exploit prediction (EPSS)
1.71% probability of exploitation in the next 30 days, higher than 77% of all scored CVEs.
CVSS scores
| Assigned by | Version | Score | Vector |
|---|---|---|---|
| CNA | 3.1 | 7.3 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L/E:P |
| CNA | 3.1 | 7.3 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L |
| NVD | 3.1 | 9.8 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| NVD | 2.0 | 7.5 | AV:N/AC:L/Au:N/C:P/I:P/A:P |
| GitHub | 3.1 | 7.3 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L |
Affected packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| npm | dexie | <3.2.2 >=4.0.0-alpha.1, <4.0.0-alpha.3 | 3.2.2 4.0.0-alpha.3 |
Affected products
- n/a dexie
Classification
- Weakness
- CWE-1321 Improperly Controlled Modification of Object Prototype Attributes
References
- snyk.io /vuln/SNYK-JS-DEXIE-2607042 · x_refsource_MISC, x_transferred
- snyk.io /vuln/SNYK-JAVA-ORGWEBJARSNPM-2805308 · x_refsource_MISC, x_transferred
- github.com /dexie/Dexie.js/blob/fe682ef24568278c3b31d9d6c93de095d4b77ae8/src/functions/utils.ts%23L13 · x_refsource_MISC, x_transferred
- github.com /dexie/Dexie.js/commit/1d655a69b9f28c3af6fae10cf5c61df387dc689b · x_refsource_MISC, x_transferred
- nvd.nist.gov /vuln/detail/CVE-2022-21189 · advisory
- github.com /dexie/Dexie.js · package
Sources
- CVE List: CVE-2022-21189
- GitHub Advisory: GHSA-3xgx-r9j4-qw9w
- NVD: CVE-2022-21189
vulnwire keeps one entry per vulnerability: the CVE id wins, then GHSA; records that alias each other are merged. Machine-readable: JSON.