{"id":"CVE-2026-33994","summary":"Locutus Prototype Pollution due to incomplete fix for CVE-2026-25521","details":"Locutus brings stdlibs of other programming languages to JavaScript for educational purposes. Starting in version 2.0.39 and prior to version 3.0.25, a prototype pollution vulnerability exists in the `parse_str` function of the npm package locutus. An attacker can pollute `Object.prototype` by overriding `RegExp.prototype.test` and then passing a crafted query string to `parse_str`, bypassing the prototype pollution guard. This vulnerability stems from an incomplete fix for CVE-2026-25521. The CVE-2026-25521 patch replaced the `String.prototype.includes()`-based guard with a `RegExp.prototype.test()`-based guard. However, `RegExp.prototype.test` is itself a writable prototype method that can be overridden, making the new guard bypassable in the same way as the original — trading one hijackable built-in for another. Version 3.0.25 contains an updated fix.","aliases":["GHSA-vc8f-x9pp-wf5p"],"modified":"2026-04-02T13:29:15.770043Z","published":"2026-03-27T22:15:47.131Z","database_specific":{"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/33xxx/CVE-2026-33994.json","cna_assigner":"GitHub_M","cwe_ids":["CWE-1321"]},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/33xxx/CVE-2026-33994.json"},{"type":"FIX","url":"https://github.com/locutusjs/locutus/commit/345a6211e1e6f939f96a7090bfeff642c9fcf9e4"},{"type":"FIX","url":"https://github.com/locutusjs/locutus/pull/597"},{"type":"WEB","url":"https://github.com/locutusjs/locutus/releases/tag/v3.0.25"},{"type":"ADVISORY","url":"https://github.com/locutusjs/locutus/security/advisories/GHSA-vc8f-x9pp-wf5p"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-33994"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/locutusjs/locutus","events":[{"introduced":"fb90ed0cb832897ef15880be446ab124e3313047"},{"fixed":"0d2402bdb92f9c59918114af9c8ba628f22e9152"}],"database_specific":{"versions":[{"introduced":"2.0.39"},{"fixed":"3.0.25"}]}}],"versions":["v2.0.39","v3.0.0","v3.0.1","v3.0.10","v3.0.11","v3.0.12","v3.0.13","v3.0.14","v3.0.15","v3.0.16","v3.0.17","v3.0.18","v3.0.19","v3.0.2","v3.0.20","v3.0.21","v3.0.22","v3.0.23","v3.0.24","v3.0.3","v3.0.4","v3.0.5","v3.0.6","v3.0.7","v3.0.8","v3.0.9"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-33994.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:L/SA:N"}]}