CVE-2026-2950

lodash vulnerable to Prototype Pollution via array path bypass in `_.unset` and `_.omit`

Published Mar 31, 2026 CVSS 3.1 · 6.5 Medium EPSS < 1% KEV · Not listed
Description
The _.unset and _.omit functions in Lodash are vulnerable to prototype pollution. The fix for CVE-2025-13465 only guards against string key members, so an attacker can bypass the check by passing array-wrapped path segments. This allows deletion of properties from built-in prototypes such as Object.prototype, Number.prototype, and String.prototype. The issue permits deletion of prototype properties but does not allow overwriting their original behavior. The issue is patched from 4.18.0 to 4.18.1 depending on the package: lodash, lodash-es, and lodash-amd in 4.18.1, and the standalone lodash.unset and lodash.omit packages in 4.18.0.

Analysis

AI-generated

Technical impact

The vulnerability allows an attacker to delete properties from built-in JavaScript prototypes by providing array-wrapped path segments to the lodash _.unset and _.omit functions. This prototype pollution can remove properties from Object.prototype, Number.prototype, and String.prototype, potentially altering the behavior of all objects and strings in the running application. Though it does not enable overwriting of those properties, the removal of standard behaviors can lead to unexpected errors or subtle logic failures, affecting the integrity of the application.

Affected Systems

The issue affects all official lodash distributions prior to version 4.18.0, including lodash, lodash-amd, lodash-es, and lodash.unset. Projects that depend on any of these NPM packages, especially those that use _.unset or _.omit on untrusted input, are vulnerable. The patch was released in lodash 4.18.0.

Risk and Exploitability

The CVSS score of 6.5 indicates a medium severity. The EPSS score is below 1%, suggesting a low probability of exploitation at present. The vulnerability is not listed in the CISA KEV catalog. Exploitation requires that the attacker can provide crafted input to a code path that calls _.unset or _.omit, which is common in many template parsing or configuration handling modules. If exploited, an attacker could disrupt application logic by removing essential prototype properties.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade lodash to version 4.18.0 or later.
  • Audit code to ensure no usage of _.unset or _.omit on untrusted data.
  • Monitor for potential errors attributable to missing prototype properties.

Generated by OpenCVE AI on April 16, 2026 at 09:15 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Debian DLA Debian DLA DLA-4663-1 node-lodash security update
Debian DLA Debian DLA DLA-4820-1 node-lodash security update
Github GHSA Github GHSA GHSA-f23m-r3pf-42rh lodash vulnerable to prototype pollution via array-path bypass in `_.unset`, `_.omit`, and `_.pullAt
Ubuntu USN Ubuntu USN USN-8411-1 Lodash vulnerabilities
History
Type Values Removed Values Added
First Time appeared Lodash lodash.omit
CPEs cpe:2.3:a:lodash:lodash.omit:*:*:*:*:*:node.js:*:*
Vendors & Products Lodash lodash.omit
Type Values Removed Values Added
Description Impact: Lodash versions 4.17.23 and earlier are vulnerable to prototype pollution in the _.unset and _.omit functions. The fix for (CVE-2025-13465: https://github.com/lodash/lodash/security/advisories/GHSA-xxjr-mmjv-4gpg) only guards against string key members, so an attacker can bypass the check by passing array-wrapped path segments. This allows deletion of properties from built-in prototypes such as Object.prototype, Number.prototype, and String.prototype. The issue permits deletion of prototype properties but does not allow overwriting their original behavior. Patches: This issue is patched in 4.18.0. Workarounds: None. Upgrade to the patched version. The _.unset and _.omit functions in Lodash are vulnerable to prototype pollution. The fix for CVE-2025-13465 only guards against string key members, so an attacker can bypass the check by passing array-wrapped path segments. This allows deletion of properties from built-in prototypes such as Object.prototype, Number.prototype, and String.prototype. The issue permits deletion of prototype properties but does not allow overwriting their original behavior. The issue is patched from 4.18.0 to 4.18.1 depending on the package: lodash, lodash-es, and lodash-amd in 4.18.1, and the standalone lodash.unset and lodash.omit packages in 4.18.0.
References
Type Values Removed Values Added
First Time appeared Lodash lodash-amd
Lodash lodash-es
CPEs cpe:2.3:a:lodash:lodash-amd:*:*:*:*:*:node.js:*:*
cpe:2.3:a:lodash:lodash-es:*:*:*:*:*:node.js:*:*
cpe:2.3:a:lodash:lodash.unset:*:*:*:*:*:node.js:*:*
cpe:2.3:a:lodash:lodash:*:*:*:*:*:node.js:*:*
Vendors & Products Lodash lodash-amd
Lodash lodash-es
Type Values Removed Values Added
First Time appeared Lodash
Lodash lodash
Lodash lodash.unset
Vendors & Products Lodash
Lodash lodash
Lodash lodash.unset
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
Description Impact: Lodash versions 4.17.23 and earlier are vulnerable to prototype pollution in the _.unset and _.omit functions. The fix for (CVE-2025-13465: https://github.com/lodash/lodash/security/advisories/GHSA-xxjr-mmjv-4gpg) only guards against string key members, so an attacker can bypass the check by passing array-wrapped path segments. This allows deletion of properties from built-in prototypes such as Object.prototype, Number.prototype, and String.prototype. The issue permits deletion of prototype properties but does not allow overwriting their original behavior. Patches: This issue is patched in 4.18.0. Workarounds: None. Upgrade to the patched version.
Title lodash vulnerable to Prototype Pollution via array path bypass in `_.unset` and `_.omit`
Weaknesses CWE-1321
References
Metrics cvssV3_1

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

Weaknesses
  • CWE-1321

    Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution')

  • CWE-915

    Improperly Controlled Modification of Dynamically-Determined Object Attributes

Sources

Status
PUBLISHED
Assigner
openjs
Published
Updated
Oct 15, 2026, 6:44 AM
Reserved
Feb 21, 2026, 8:04 PM
Status
Analyzed
Published
Mar 31, 2026, 8:16 PM
Modified
Nov 13, 2026, 7:15 PM
Severity
Moderate
Public date
Mar 31, 2026, 7:18 PM