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.
An exception is thrown from a function, but it is not caught.
| Name | Vendor | Start Version | End Version |
|---|---|---|---|
| Red Hat Discovery 2 | RedHat | discovery/discovery-ui-rhel9:1786634825 | * |
| Red Hat Hardened Images | RedHat | grafana13-1-main-13.1.3-0.1.1.hum1 | * |
| Red Hat Hardened Images | RedHat | grafana12-4-main-12.4.8-0.1.1.hum1 | * |
| Node-browserslist | Ubuntu | upstream | * |