CVE-2026-73088
Prior to 4.28.7, normalizeStats() in node.js, reached unconditionally through getStat() and loadStat() on every browserslist() call, processes untrusted browserslist-stats.json, opts.stats, and CLI --stats data with an unguarded for...in loop and…
Does this matter?
High impact if exploited, but EPSS currently rates exploitation as unlikely (0.44%). Schedule it in the normal patch cycle and watch for a rise in EPSS or a public exploit.
Description
Browserslist is a configuration tool for sharing target browsers and Node.js versions between front-end tools. Prior to 4.28.7, normalizeStats() in node.js, reached unconditionally through getStat() and loadStat() on every browserslist() call, processes untrusted browserslist-stats.json, opts.stats, and CLI --stats data with an unguarded for...in loop and plain-object bracket access and assignment, allowing inherited Object.prototype keys including __proto__, toString, valueOf, constructor, hasOwnProperty, and isPrototypeOf to cause an uncaught TypeError or modify the prototype of the returned normalized object. This issue is fixed in version 4.28.7.
- CVSS 3.1
- 7.5 HIGHCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
- EPSS
- 0.44% probability · 37th percentile
- CISA KEV
- Not listed
- Weakness
- CWE-248, CWE-1321
- Source
- security-advisories@github.com
References
- https://github.com/browserslist/browserslist/commit/f9914ad9effc865ccc27d816255625890b31ca51
- https://github.com/browserslist/browserslist/releases/tag/4.28.7
- https://github.com/browserslist/browserslist/security/advisories/GHSA-73wf-gq98-2v4g
- https://github.com/browserslist/browserslist/security/advisories/GHSA-73wf-gq98-2v4g
Source: NVD record, EPSS from FIRST.org, KEV from CISA. Refreshed daily.