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

Kritische Schwachstelle in NETGEAR-Router erlaubt Admin-Zugriff ohne Authentifizierung

Sicherheitsforscher haben eine schwerwiegende Schwachstelle (CVE-2025-4978) in NETGEARs DGND3700v2-Routern entdeckt, die es Angreifern ermöglicht, ohne Login-Daten vollständigen Administratorzugriff zu erlangen. Die Lücke wird mit einem CVSSv4-Score von 9.3 als kritisch eingestuft.

Read More

Datenschutzvorfall bei Online-Apotheke Volksversand.de

Die Online-Versandapotheke volksversand.de hat einen Datenschutzvorfall gemeldet. Unbekannte Angreifer verschafften sich unbefugten Zugriff auf das IT-System des Unternehmens und konnten dabei auf persönliche Kundendaten zugreifen. Betroffen sind unter anderem Namen, Adressen und E-Mail-Adressen – sensible Zahlungsdaten oder Passwörter seien laut dem Betreiber jedoch nicht kompromittiert worden.

Read More

FTC verpflichtet GoDaddy zu umfassenden SicherheitsmaĂźnahmen nach wiederholten Datenschutzpannen

Die US-Verbraucherschutzbehörde Federal Trade Commission (FTC) hat eine finale Anordnung gegen den Webhosting-Anbieter GoDaddy erlassen. Diese verpflichtet das Unternehmen zu umfangreichen Sicherheitsvorgaben, nachdem es seit 2018 zu mehreren schwerwiegenden Datenpannen gekommen war. GoDaddy, das rund fünf Millionen Kunden betreut, hatte laut FTC grundlegende Sicherheitsstandards nicht eingehalten und seine Nutzer über den Schutz ihrer Daten getäuscht.

Read More