CVE-2023-26145 json
pydash Command Injection vulnerability
published 2023-09-28 3 y ago modified 2026-06-17 4 mo ago also GHSA-8mjr-6c96-39w8 , PYSEC-2023-179 , EUVD-2023-0214
- cvss
- 7.4
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 3.6%
- EPSS 3.6% chance of exploitation in 30 days, percentile 89%
- public exploits
- 0
- none known
Summary
This affects versions of the package pydash before 6.0.0. A number of pydash methods such as pydash.objects.invoke() and pydash.collections.invoke_map() accept dotted paths (Deep Path Strings) to target a nested Python object, relative to the original source object. These paths can be used to target internal class attributes and dict items, to retrieve, modify or invoke nested Python objects. **Note:** The pydash.objects.invoke() method is vulnerable to Command Injection when the following prerequisites are satisfied: 1) The source object (argument 1) is not a built-in object such as list/dict (otherwise, the __init__.__globals__ path is not accessible) 2) The attacker has control over argument 2 (the path string) and argument 3 (the argument to pass to the invoked method) The pydash.collections.invoke_map() method is also vulnerable, but is harder to exploit as the attacker does not have direct control over the argument to be passed to the invoked function.
Patch / fix
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- total
- Assessed
- 2 y ago
Exploit prediction
3.60% chance of exploitation in the next 30 days, higher than 89% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- gist.github.com https://gist.github.com/CalumHutton/45d33e9ea55bf4953b3b31c84703dfca referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 7.4 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N/E:P |
| CNA | 3.1 | 7.4 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N |
| NVD | 3.1 | 8.1 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H |
| GitHub | 3.1 | 7.4 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | pydash | <6.0.0 |
6.0.0 |
Affected products
- n/a pydash
Classification
References
-
github.com
/dgilland/pydash/commit/6ff0831ad285fff937cafd2a853f20cc9ae92021
web, patch
-
gist.github.com
/CalumHutton/45d33e9ea55bf4953b3b31c84703dfca
web, exploit, third-party-advisory
-
security.snyk.io
/vuln/SNYK-PYTHON-PYDASH-5916518
web, third-party-advisory
-
nvd.nist.gov
/vuln/detail/CVE-2023-26145
advisory
-
github.com
/dgilland/pydash
package
-
github.com
/pypa/advisory-database/tree/main/vulns/pydash/PYSEC-2023-179.yaml
web
-
github.com
/advisories/GHSA-8mjr-6c96-39w8
advisory
Sources
- CVE List CVE-2023-26145
- GitHub Advisory GHSA-8mjr-6c96-39w8
- NVD CVE-2023-26145
- OSV PYSEC-2023-179
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.