ZeroHour
oss-securitypublished ()ingested 1

CPython: [CVE-2026-87910] tarfile hardlink fallback ignores custom extraction filter rejection via None

mediumVulnerabilityimportance 38CVE-2026-87910
AI summary · glm-5.3-flash

CPython CVE-2026-87910: tarfile's hardlink fallback ignores custom extraction filters that reject entries via None, rated MEDIUM severity.

Petr Viktorin disclosed CVE-2026-87910 on the CPython security-announce list, rated MEDIUM severity. The flaw is in the tarfile module: when a custom extraction filter rejects an entry by returning None, the hardlink fallback path ignores the rejection. The posted excerpt did not include affected versions or patch details.

  • tarfile hardlink fallback bypasses extraction filter rejection signaled via None
  • Rated MEDIUM severity by the CPython security team
  • Disclosed on the CPython security-announce mailing list
VendorsCPython
ProductsCPython

Vulnerabilities mentionedAll →

CVEVulnerabilityCVSSEPSSFlagsAffectedExposurePublished
CVE-2026-87910
CPython tarfile link-fallback ignores extraction filter rejection (filter bypass)

CVE-2026-87910 is a filter-bypass flaw in CPython's tarfile module: when tarfile extracts a hard or symbolic link on a filesystem that does not support links, it falls back to extracting the member the link points to, and the extraction filter is run twice, once for the extracted member and once with the name set to the link's location. In one of these two calls, a None return value, which is how a custom filter rejects or skips a member, was ignored, so a member the filter rejected could still be written to disk. An attacker who can supply a crafted tar archive could thereby extract members to locations the filter was intended to prevent, producing unintended or potentially traversing file placement (CWE-22, CWE-59; the CVSS 4.0 score of 5.7 reflects high integrity impact with no confidentiality or availability impact). Affected users are those running CPython and extracting archives with a custom extraction filter that rejects members via None on a filesystem without link support; the advisory data does not specify the affected version ranges. No public proof-of-concept, CISA KEV listing, or known exploitation has been reported.

Do: Upgrade CPython to a release containing the fix for CVE-2026-87910 as soon as your vendor or distribution ships it, monitoring python.org security advisories for the patched versions. As an interim mitigation, do not rely on a custom extraction filter's None return to skip members when extracting archives containing hard or symbolic links on filesystems without link support, and audit code paths that call extract/extractall with user-controlled archives. After patching, review extraction destinations for members that should have been skipped.

5.7
  • Python Software Foundation CPython (tarfile module)
nicheLikely on the order of hundreds to a few thousand Python environments; no public telemetry quantifies custom extraction-filter usage on link-less filesystems
Full article

Posted by Alan Coopersmith on Sep 11 -------- Forwarded Message -------- Subject: [Security-announce][CVE-2026-87910] tarfile hardlink fallback ignores custom extraction filter rejection via None Date: Fri, 11 Sep 2026 14:24:10 +0200 From: Petr Viktorin via Security-announce Reply-To: security-sig () python org To: security-announce () python org CC: Petr Viktorin There is a MEDIUM...

This source does not provide full text. Read it at seclists.org.