Skip to main content

Locutus CVE-2026-25521

CRITICAL
Improperly Controlled Modification of Object Prototype Attributes (Prototype Pollution) (CWE-1321)
2026-02-04 security-advisories@github.com GHSA-rxrv-835q-v5mh
9.4
CVSS 4.0 · Vendor: github
Share

Severity by source

Vendor (github) PRIMARY
9.4 CRITICAL
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
vuln.today AI
7.0 HIGH

Input is typically remote data (AV:N) but reliable exploitation depends on a tampered prototype or downstream gadget (AC:H); pollution mainly corrupts integrity (I:H) with lesser confidentiality/availability impact.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:H/A:L
4.0 AV:N/AC:H/AT:P/PR:N/UI:N/VC:L/VI:H/VA:L/SC:N/SI:N/SA:N
Red Hat
9.3 CRITICAL
qualitative

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Local
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
X

Lifecycle Timeline

10
Analysis Updated
Jun 27, 2026 - 05:30 vuln.today
v3 (cvss_changed)
Source Code Evidence Fetched
Jun 27, 2026 - 05:29 vuln.today
Analysis Updated
Jun 27, 2026 - 05:29 vuln.today
v2 (cvss_changed)
Re-analysis Queued
Jun 27, 2026 - 05:22 vuln.today
cvss_changed
Severity Changed
Jun 27, 2026 - 05:22 NVD
HIGH CRITICAL
CVSS changed
Jun 27, 2026 - 05:22 NVD
8.8 (HIGH) 9.4 (CRITICAL)
Analysis Generated
Mar 12, 2026 - 21:54 vuln.today
PoC Detected
Feb 20, 2026 - 21:20 vuln.today
Public exploit code
Patch released
Feb 20, 2026 - 21:20 nvd
Patch available
CVE Published
Feb 04, 2026 - 22:15 nvd
HIGH 8.8

DescriptionCVE.org

Locutus brings stdlibs of other programming languages to JavaScript for educational purposes. In versions from 2.0.12 to before 2.0.39, a prototype pollution vulnerability exists in locutus. Despite a previous fix that attempted to mitigate prototype pollution by checking whether user input contained a forbidden key, it is still possible to pollute Object.prototype via a crafted input using String.prototype. This issue has been patched in version 2.0.39.

AnalysisAI

Prototype pollution in the Locutus JavaScript library (npm package, versions >= 2.0.12 and < 2.0.39) lets attacker-influenced input passed to the php.strings.parse_str function pollute Object.prototype, bypassing a prior guard. The earlier fix rejected forbidden keys using String.prototype.includes(), but an attacker able to override that method - or supply crafted keys such as constructor[prototype][polluted]=yes - defeats the check; publicly available exploit code exists in the GHSA advisory. EPSS exploitation probability is very low (0.01%, 1st percentile), it is not on CISA KEV, and no public exploit is identified as active in the wild.

Technical ContextAI

Locutus reimplements standard libraries from other languages (notably PHP) in JavaScript for educational use. The flaw is CWE-1321 (Improperly Controlled Modification of Object Prototype Attributes, i.e. prototype pollution) in src/php/strings/parse_str.js, the PHP parse_str() port that parses query-string-style input into a target object. The prior mitigation checked each parsed key with key.includes('__proto__'|'constructor'|'prototype'); because that guard depends on the runtime's mutable String.prototype.includes method, an attacker who can replace it with a function returning false (or otherwise evade the substring check) causes nested assignments like constructor[prototype][polluted] to write onto Object.prototype, affecting every object in the process. The CPE cpe:2.3:a:locutus:locutus:*:*:*:*:*:node.js:*:* confirms the affected target is the Node.js distribution of the package. The patch replaces the includes()-based check with a regex test (/__proto__|constructor|prototype/.test(key)), which does not depend on mutable string-prototype methods.

RemediationAI

Upgrade to Locutus 2.0.39 or later, which replaces the String.prototype.includes-based key guard with a regex test that cannot be bypassed by tampering with string-prototype methods (Vendor-released patch: 2.0.39; commit 042af9ca7fde2ff599120783e720a17f335bb01c). Until you can upgrade, avoid passing attacker-controlled input directly into locutus.php.strings.parse_str, and validate or reject keys containing __proto__, constructor, or prototype before parsing; as a structural defense, call Object.freeze(Object.prototype) at process start (trade-off: this breaks libraries that legitimately extend built-in prototypes) or parse into a null-prototype target object where feasible. Review the GHSA advisory (https://github.com/locutusjs/locutus/security/advisories/GHSA-rxrv-835q-v5mh) and the commit diff for exact behavior, and audit downstream sinks such as eval or child_process where a polluted property could be leveraged.

CVE-2026-34621 HIGH POC
8.6 Apr 11

Prototype pollution in Adobe Acrobat Reader versions 24.001.30356, 26.001.21367 and earlier enables arbitrary code execu

CVE-2024-56059 CRITICAL
9.8 Dec 18

Prototype pollution in the farinspace Partners WordPress plugin (versions up to and including 0.2.0) enables remote unau

CVE-2020-28271 CRITICAL POC
9.8 Nov 12

Prototype pollution vulnerability in 'deephas' versions 1.0.0 through 1.0.5 allows attacker to cause a denial of service

CVE-2023-38894 CRITICAL POC
9.8 Aug 16

A Prototype Pollution issue in Cronvel Tree-kit v.0.7.4 and before allows a remote attacker to execute arbitrary code vi

CVE-2024-24292 CRITICAL POC
9.8 Mar 28

A Prototype Pollution issue in Aliconnect /sdk v.0.0.6 allows an attacker to execute arbitrary code via the aim function

CVE-2023-26121 CRITICAL POC
10.0 Apr 11

All versions of the package safe-eval are vulnerable to Prototype Pollution via the safeEval function, due to improper s

CVE-2021-23449 CRITICAL POC
10.0 Oct 18

This affects the package vm2 before 3.9.4 via a Prototype Pollution attack vector, which can lead to execution of arbitr

CVE-2024-39011 CRITICAL POC
9.8 Jul 30

Prototype Pollution in chargeover redoc v2.0.9-rc.69 allows attackers to execute arbitrary code or cause a Denial of Ser

CVE-2024-38988 CRITICAL POC
9.8 Mar 28

alizeait unflatto <= 1.0.2 was discovered to contain a prototype pollution via the method exports.unflatto at /dist/inde

CVE-2025-57347 CRITICAL POC
9.8 Sep 24

A vulnerability exists in the 'dagre-d3-es' Node.js package version 7.0.9, specifically within the 'bk' module's addConf

CVE-2025-57321 CRITICAL POC
9.8 Sep 24

A Prototype Pollution vulnerability in the util-deps.addFileDepend function of magix-combine-ex versions thru 1.2.10 all

CVE-2024-45435 CRITICAL POC
9.8 Aug 29

Chartist 1.x through 1.3.0 allows Prototype Pollution via the extend function. Rated critical severity (CVSS 9.8), this

Vendor StatusVendor

Share

CVE-2026-25521 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy