Lookup for vulnerabilities affecting packages.
| Vulnerability_id | VCID-d7qb-cwzz-3yh6 |
| Summary | DOMPurify USE_PROFILES prototype pollution allows event handlers
## Summary
When `USE_PROFILES` is enabled, DOMPurify rebuilds `ALLOWED_ATTR` as a plain array before populating it with the requested allowlists. Because the sanitizer still looks up attributes via `ALLOWED_ATTR[lcName]`, any `Array.prototype` property that is polluted also counts as an allowlisted attribute. An attacker who can set `Array.prototype.onclick = true` (or a runtime already subject to prototype pollution) can thus force DOMPurify to keep event handlers such as `onclick` even when they are normally forbidden. The provided PoC sanitizes `<img onclick=...>` with `USE_PROFILES` and adds the sanitized output to the DOM; the polluted prototype allows the event handler to survive and execute, turning what should be a blocklist into a silent XSS vector.
## Impact
Prototype pollution makes DOMPurify accept dangerous event handler attributes, which bypasses the sanitizer and results in DOM-based XSS once the sanitized markup is rendered.
## Credits
Identified by Cantina’s Apex (https://www.cantina.security). |
| Aliases |
| 0 |
| alias |
GHSA-cj63-jhhr-wcxv |
|
|
| Fixed_packages |
|
| Affected_packages |
|
| References |
|
| Weaknesses |
| 0 |
| cwe_id |
1321 |
| name |
Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution') |
| description |
The product receives input from an upstream component that specifies attributes that are to be initialized or updated in an object, but it does not properly control modifications of attributes of the object prototype. |
|
|
| Exploits |
|
| Severity_range_score | 4.0 - 6.9 |
| Exploitability | 0.5 |
| Weighted_severity | 6.2 |
| Risk_score | 3.1 |
| Resource_url | http://public2.vulnerablecode.io/vulnerabilities/VCID-d7qb-cwzz-3yh6 |