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:
- 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 dierealpath
-Ü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. - Filter „tar“
Auch bei Nutzung vonfilter="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. - Auswirkungen gegenüber CVE-2024-12718
- CVE-2024-12718 erlaubte es Angreifern, mittels
filter="data"
oderfilter="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).
- CVE-2024-12718 erlaubte es Angreifern, mittels
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()
oderTarFile.extractall()
mitfilter="data"
oderfilter="tar"
Empfehlungen und Gegenmaßnahmen
- 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. - 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). - 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. - 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.
Professionelle Hilfe erwünscht?
Sentiguard ist spezialisiert auf Notfallhilfe nach Cyberattacken, IT Sicherheitsbeauftragte und IT Sicherheitskonzepte nach BSI Standard. Haben Sie Fragen und wünschen Sie unverbindliche Beratung, dann melden Sie sich gerne bei uns: