Description
exceljs through 4.4.0 contains a prototype pollution vulnerability in the deepMerge helper that fails to reject __proto__, constructor, or prototype keys when merging note objects. Attackers can assign parsed JSON with a malicious __proto__ property to cell notes, modifying Object.prototype and affecting all plain objects created in the process.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| exceljs | exceljs | ≤ 4.4.0 | — |
References
- https://github.com/exceljs/exceljs product
- GitHub Security Advisory (GHSA-qwr4-7h29-chpf) third-party-advisory vendor-advisory
- https://github.com/exceljs/exceljs/blob/v4.4.0/lib/utils/under-dash.js#L155-L181 technical-description
- VulnCheck Advisory: exceljs through 4.4.0 Prototype Pollution via deepMerge Reached From Note Serialization third-party-advisory