Python 3.12: Path Escape via tarfile-Filter

Zusätzlich wurde am 3. Juni 2025 mit CVE-2025-4517 eine kritisch Schwachstelle im tarfile-Modul von Python veröffentlicht. Wie bei CVE-2024-12718 dreht sich auch CVE-2025-4517 um die neuen Extraktionsfilter („filter=“), die ab Python 3.12 eingeführt wurden, um beim Entpacken von TAR-Archiven Metadaten und Berechtigungen kontrolliert zuzuweisen. In beiden Fällen erlauben fehlerhafte Filteroptionen jedoch einen Escapismus aus dem vorgesehenen Entpackungsverzeichnis und damit Manipulationen an beliebigen Dateien im Dateisystem.

CVE-2025-4517: Arbitrary writes via tarfile realpath overflow

  • CNA: Python Software Foundation
  • Published / Updated: 2025-06-03
  • Betroffene Versionen: Python 3.12.0 bis 3.12.10, 3.13.0 bis 3.13.3 und alle Vorabversionen ab 3.14.0a1 bis vor 3.14.0. Ebenfalls in frĂĽheren Veröffentlichungen enthalten sind Schwachstellen in den Branches 3.9 (bis 3.9.22), 3.10 (bis 3.10.17) sowie 3.11 (bis 3.11.12), da dort die Filterfunktion noch nachträglich zurĂĽckportiert wurde. Ă„ltere Python-Versionen ohne den Extraktionsfilter sind nicht betroffen.
  • CVSS 3.1-Score: 9.4 (CRITICAL) – Angreifer können ungehindert Dateischreibvorgänge auĂźerhalb des Zielordners auslösen, ohne dass eine Authentifizierung (PR:N) notwendig ist.
  • CWE: CWE-22 (Improper Limitation of a Pathname to a Restricted Directory, „Path Traversal“)

Beschreibung und Zusammenhang mit CVE-2024-12718
Während CVE-2024-12718 vor allem das Manipulieren von Zeitstempeln (mtime) oder das nachträgliche Setzen von Dateiberechtigungen (chmod) außerhalb des Entpackungsverzeichnisses ermöglichte, nutzt CVE-2025-4517 einen Integer-/Buffer-Overflow in tarfile’s Realpath-Logik, um beliebige Schreibvorgänge auszuführen. Konkret geschieht Folgendes:

  1. Filter „data“
    In Python 3.12–3.14 hat man per Vorgabe (ab 3.14) den Filter „data“ aktiviert, um beim Entpacken nur Archivelemente zu übertragen, deren Zielpfad im Stammverzeichnis des Entpackungspfads verbleibt. Allerdings kann ein speziell präpariertes TAR-Archiv durch geschickt gesetzte Symlinks und Name-Feld-Manipulationen die realpath-Überprüfung umgehen und dadurch beliebige Dateien im Dateisystem überschreiben. Somit lässt sich beispielsweise ein schreibgeschützter Systempfad in /etc/ mit manipulierten Inhalten versehen, noch bevor das Filter-Modul einschreitet.
  2. Filter „tar“
    Auch bei Nutzung von filter="tar" können über einen realpath-basierten Überlauf („realpath overflow“) Berechtigungen (mode) ausgesetzt werden, die auf Dateien außerhalb des beabsichtigten Entpackungsverzeichnisses angewendet werden. Dies geht weit über die reine Zeitstempel-Manipulation hinaus und erlaubt damit aktive Dateiveränderungen.
  3. Auswirkungen gegenĂĽber CVE-2024-12718
    • CVE-2024-12718 erlaubte es Angreifern, mittels filter="data" oder filter="tar" lediglich Metadaten (Zeitstempel, Berechtigungen) von beliebigen Dateien anzupassen – einen direkten Schreibzugriff auf Dateiinhalte gab es nicht.
    • CVE-2025-4517 hingegen ermöglicht durch einen gezielten Realpath-Overflow echte Schreibvorgänge in fremde Dateien – ein deutlich größeres Sicherheitsrisiko, das folglich mit CVSS 9.4 als kritisch bewertet wurde (im Gegensatz zu CVE-2024-12718, das nach anfänglicher Bewertung als kritischer Fehler schlieĂźlich nur noch mittlere Schwere erhielt).

Konkrete Gefahren

  • Arbitrary File Writes: Angreifer können Dateien beliebigen Inhalts auĂźerhalb des Entpackungsverzeichnisses ablegen oder bestehende Dateien ĂĽberschreiben – dies betrifft insbesondere Konfigurations- und Systemdateien wie /etc/passwd, /etc/shadow oder SSH-SchlĂĽssel.
  • Umgehung von Sandboxen: In Containern oder CI/CD-Umgebungen, die sich auf den tarfile-Filter verlassen, um Archive sicher zu isolieren, fĂĽhrt der Overflow dazu, dass selbst vermeintlich harmlose Extraktionen kritische Systemressourcen kompromittieren.
  • Sicherheitsumgehung in Paketanwendungen: Da Python-Source-Distributions als TAR-Archive („sdist“) schon immer beliebige SkriptausfĂĽhrung im Build-Prozess erlauben, fĂĽhrt CVE-2025-4517 vor allem in Umgebungen zu Kompromittierungen, die direkt aus solchen Archiven entpacken und ausfĂĽhren, ohne sie zuvor zu prĂĽfen.

Betroffene Konfigurationen

  • Python 3.12.0 – 3.12.10
  • Python 3.13.0 – 3.13.3
  • Python 3.14.0a1 – vor 3.14.0
  • Vorab zurĂĽckportierte Branches: 3.11.0 – 3.11.12, 3.10.0 – 3.10.17, 3.9.0 – 3.9.22
  • Nutzung von TarFile.extract() oder TarFile.extractall() mit filter="data" oder filter="tar"

Empfehlungen und GegenmaĂźnahmen

  1. Extraktion ungetesteter Archive vermeiden
    Wie schon bei CVE-2024-12718 gilt: Niemals unbekannte TAR-Archive in einer privilegierten Umgebung entpacken – besonders nicht mit aktivem Filter. Bei Paketen aus externen Quellen sollte stets vorab eine Prüfung auf bösartige Symlinks und manipulierte Header erfolgen.
  2. Filter deaktivieren („filter=“none”“) und Entpackung in isolierter Umgebung
    Wer Archivinhalte verarbeiten muss, sollte zwingend den Standardfilter auf "none" setzen und das Entpacken nur in einem dedizierten, unprivilegierten Container oder einer VM durchfĂĽhren. Das verhindert sowohl Meta-Daten-Manipulation als auch reinen Schreibzugriff (Arbitrary Write).
  3. Schnelle Updates auf gepatchte Versionen
    Die Python Software Foundation hat direkt am 3. Juni 2025 Patches für alle betroffenen Versionslinien veröffentlicht (u. a. 3.12.11, 3.13.4 und 3.14.0). Nutzer sollten umgehend auf diese Versionen oder spätere Builds umstellen und in ihren Automatisierungs-Workflows eine Versionskontrolle einbauen, damit bei zukünftigen Sicherheitsupdates keine Lücken entstehen.
  4. Build- und CI/CD-Prozesse auditen
    In vielen Entwicklungs-Pipelines werden Python-Source-Distributions als TAR-Archiv direkt heruntergeladen und ausgepackt, bevor der Build-Prozess startet. Hier ist eine PrĂĽfung essenziell: Explizites Entpacken mit deaktivierten Filtern und nur nach Signatur- bzw. Checksum-Verifikation.

Related Posts

TikTok-Videos verbreiten Schadsoftware ĂĽber Selbstinfektions-Tutorials

Sicherheitsforscher von Trend Micro haben eine neue, perfide Social-Engineering-Kampagne aufgedeckt, bei der TikTok-Videos zur Verbreitung von Vidar- und StealC-Infostealern eingesetzt werden. Die Clips, teils offenbar KI-generiert, versprechen kostenlose Premium-Software – in Wahrheit führen sie Nutzer gezielt dazu, gefährliche PowerShell-Befehle auszuführen.

Read More

Datenpanne bei Coinbase - potenzielle Schäden bis zu 400 Millionen US-Dollar

Die Kryptobörse Coinbase hat einen schweren Datenschutzvorfall bekanntgegeben, bei dem 69.461 Kunden betroffen sind. In einer Meldung an das Büro des Generalstaatsanwalts von Maine erklärte das Unternehmen, dass Dienstleister an internationalen Supportstandorten unbefugt auf Kundendaten zugegriffen hätten.

Read More

Kritische DoS-Schwachstelle in mod_security2 – CVE-2025-47947

Eine schwerwiegende Sicherheitslücke bedroht derzeit Webserver, die das Apache-Modul mod_security2 einsetzen. Die am 21. Mai 2025 veröffentlichte Schwachstelle mit der Kennung CVE-2025-47947 ermöglicht es Angreifern, durch gezielt präparierte Anfragen einen Denial-of-Service (DoS) auszulösen – und das mit nur einer einzigen HTTP-Anfrage.

Read More