Description
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.
Published: 2026-03-27
Score: 6.3 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Prototype Pollution via parse_str
Action: Patch
AI Analysis

Impact

A flaw in the parse_str function of the Locutus library allows an attacker to overwrite Object.prototype by hijacking RegExp.prototype.test. The vulnerability arises because the guard that replaces String.prototype.includes() with RegExp.prototype.test() is itself writable and can be overridden, enabling the prototype pollution guard to be bypassed. This flaw permits an attacker to inject arbitrary properties into all Object instances, potentially corrupting library behavior and affecting any code that relies on Object.prototype values. Such pollution can lead to logic errors, degrade data integrity, and provide a foothold for more serious attacks if combined with other weaknesses.

Affected Systems

The issue affects the Locutus JavaScript library used in Node.js environments. Versions from 2.0.39 up to (but not including) 3.0.25 are vulnerable. Affected users run Locutus 2.x or the early 3.0.x releases without the update supplied in version 3.0.25.

Risk and Exploitability

The CVSS score of 6.3 places the vulnerability in the medium severity range. The EPSS score is below 1% and the vulnerability is not listed in CISA's KEV catalog, indicating a low exploitation likelihood. The attack vector is inferred to be via user-controlled input to parse_str, such as a crafted query string, after an attacker has been able to override RegExp.prototype.test. While the description does not explicitly state remote vs local scope, the nature of prototype pollution often enables persistence of exploitation across user sessions, making the impact potentially significant if the application trusts unchecked input.

Generated by OpenCVE AI on April 2, 2026 at 04:09 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Locutus to version 3.0.25 or later which contains the updated patch

Generated by OpenCVE AI on April 2, 2026 at 04:09 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-vc8f-x9pp-wf5p Locutus Prototype Pollution due to incomplete fix for CVE-2026-25521
History

Wed, 01 Apr 2026 23:45:00 +0000

Type Values Removed Values Added
CPEs cpe:2.3:a:locutus:locutus:*:*:*:*:*:node.js:*:*
Metrics cvssV3_1

{'score': 5.3, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N'}

ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}

cvssV3_1

{'score': 9.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'}


Mon, 30 Mar 2026 12:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-915
References
Metrics threat_severity

None

cvssV3_1

{'score': 5.3, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N'}

threat_severity

Moderate


Mon, 30 Mar 2026 08:15:00 +0000

Type Values Removed Values Added
First Time appeared Locutus
Locutus locutus
Vendors & Products Locutus
Locutus locutus

Sat, 28 Mar 2026 03:15:00 +0000

Type Values Removed Values Added
Description 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.
Title Locutus Prototype Pollution due to incomplete fix for CVE-2026-25521
Weaknesses CWE-1321
References
Metrics cvssV4_0

{'score': 6.3, 'vector': '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'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-04-01T13:45:55.451Z

Reserved: 2026-03-24T22:20:06.212Z

Link: CVE-2026-33994

cve-icon Vulnrichment

Updated: 2026-04-01T13:45:51.273Z

cve-icon NVD

Status : Modified

Published: 2026-03-27T23:17:14.413

Modified: 2026-04-01T14:16:51.660

Link: CVE-2026-33994

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-03-27T22:15:47Z

Links: CVE-2026-33994 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-04-02T07:55:13Z

Weaknesses