CVE-2026-87910
CVE-2026-87910 — tarfile hardlink fallback ignores custom extraction filter rejection via None
When tarfile extracts a link on a system that doesn't support links, it falls back to extracting a member from the archive. In this case, the filter function is run twice: once for the extracted member, and once with name set to the location of the link. For one of the calls, the return value was ignored. Instead, the member should be skipped if either call returns None.
Published Updated Sources: cvelistV5, PSF
Triage
Is it exploited, how likely is exploitation, what does it touch, and how severe do the scoring sources call it.
Exploitation
Unreported
no source claims exploitation
EPSS
1%
chance of exploitation in 30 days
CVSS base
5.7
MEDIUM
CISA SSVC assessment
Three decision points CISA publishes for the CVEs it assesses · SSVC 2.0.3. A stakeholder decision, not a severity score.
Exploitation
None
none · proof-of-concept · active
Automatable
No
can an attacker script all four kill-chain steps
Technical impact
Partial
partial · total control of the vulnerable component
Affected scope
The catalog records vendors and products as separate lists, not pairs, so which product belongs to which vendor is not something this page can say.
Vendors (1)
Products (1)
Every base score collected
Sources score independently and disagree; each row says who scored it and under which version.
| Score | Version | Severity | Expl. | Impact | Source |
|---|---|---|---|---|---|
| 5.7 | CVSS 4.0 | MEDIUM | — | — | cvelistV5 |
Weakness & attack patterns
- CWE-22
- CWE-59
Attack patterns reported against this CVE. The ATT&CK techniques below are inferred from its weakness class.
- T1547.009Boot or Logon Autostart Execution: Shortcut Modification
- T1574.005Hijack Execution Flow: Executable Installer File Permissions Weakness
- T1574.010Hijack Execution Flow: Services File Permissions Weakness
References
10 on the record
- mail.python.org/archives/list/[email protected]/thread/57TBTLL2W6APMZR3A25B2YV7GL3EPTDJ/
vendor-advisory
- github.com/python/cpython/pull/157266
patch
- github.com/python/cpython/issues/157265
issue-tracking
- github.com/python/cpython/commit/d9565e54b1fc6d63c5be9afd58114499128fa57b
patch
- github.com/python/cpython/commit/fb2f0bbc3b35264f09cc2cb2934b7987527a6bc2
patch
- github.com/python/cpython/commit/9c17bace90f88dfba6d0e2fe23c8e7ae35f83955
patch
- github.com/python/cpython/commit/764fd0af8d9e19d3684a58d2e58bf770f0605036
patch
- github.com/python/cpython/commit/2eb0c2f1dc71847731b6ab30aebefd058d482a7f
patch
Elsewhere on this site
- python software foundationevery CVE for this vendor
- CWE-22other pages naming this weakness
Not in any source we poll
Listed rather than left blank: an empty field and an unmeasured one look identical on screen, and only one is a reason to look elsewhere.
- No confirmed IOCs, IP addresses, domains, file hashes, or malware artifacts supplied.
- No organization-specific asset inventory, compensating-control status, or patch deployment evidence supplied.
- No exploit packet captures, log samples, or incident case IDs supplied.