GitHub Advisoryadvisory · npm, RubyGems

GHSA-p6mc-m468-83gw Prototype Pollution in lodash

HIGH Published 2020-07-15 Modified 2025-08-12 Official page ↗
Aliases
CVE-2020-8203
Ecosystem
npm, RubyGems
Packages
lodash, lodash-es, lodash.pick, lodash.set, lodash.setwith, lodash.update, lodash.updatewith, lodash-rails
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:H
Weaknesses
CWE-1321, CWE-770
Reviewed
2020-07-15

Affected packages

• npm lodash: >= 3.7.0, < 4.17.19 → fixed in 4.17.19 • npm lodash-es: >= 3.7.0, < 4.17.20 → fixed in 4.17.20 • npm lodash.pick: >= 4.0.0, <= 4.4.0 (no fix yet) • npm lodash.set: >= 3.7.0, <= 4.3.2 (no fix yet) • npm lodash.setwith: <= 4.3.2 (no fix yet) • npm lodash.update: <= 4.10.2 (no fix yet) • npm lodash.updatewith: <= 4.10.2 (no fix yet) • RubyGems lodash-rails: >= 3.7.0, < 4.17.19 → fixed in 4.17.19

Description

Versions of lodash prior to 4.17.19 are vulnerable to Prototype Pollution. The functions `pick`, `set`, `setWith`, `update`, `updateWith`, and `zipObjectDeep` allow a malicious user to modify the prototype of Object if the property identifiers are user-supplied. Being affected by this issue requires manipulating objects based on user-provided property values or arrays. This vulnerability causes the addition or modification of an existing property that will exist on all objects and may lead to Denial of Service or Code Execution under specific circumstances.

Related

Alias · CVE (1)

  • CVE-2020-8203 Prototype pollution attack when using _.zipObjectDeep in lodash before 4.17.20. vulnerability

Weakness · CWE (2)

  • CWE-1321 Improperly Controlled Modification of Object Prototype Attributes weakness
  • CWE-770 Allocation of Resources Without Limits or Throttling weakness

References