ZIP Slip: Die Schwachstelle bei Archiv-Extraktion überall 📦

Verständnis der kritischen Sicherheitslücke, die Tausende von Anwendungen betrifft
Im Juni 2018 offenbarten Sicherheitsexperten eine der am weitesten verbreiteten Schwachstellen in moderner Softwareentwicklung: ZIP Slip. Diese kritische Schwachstelle bei Archiv-Extraktion betrifft Tausende von Projekten in verschiedenen Programmier-Ökosystemen und ermöglicht es Angreifern, beliebige Dateien auf Zielsystemen zu schreiben und möglicherweise Remote-Code-Ausführung zu erreichen. Obwohl sie bereits vor Jahren öffentlich bekannt wurde, tauchen weiterhin neue Fälle dieser Schwachstelle auf, mit aktuellen CVEs im Jahr 2025, die beliebte Archivierungsbibliotheken betreffen.
Was ist ZIP Slip?
ZIP Slip ist eine Form der beliebigen Dateischreib-Schwachstelle, die Directory Traversal bei der Archiv-Extraktion ausnutzt. Der Angriff nutzt speziell gestaltete Archivdateien, die Dateinamen mit Pfad-Traversal-Sequenzen (wie ../../evil.sh) enthalten. Beim Entpacken schreiben sie Dateien außerhalb des vorgesehenen Zielverzeichnisses.
Die Schwachstelle betrifft nicht nur ZIP-Dateien. Sie betrifft mehrere Archivformate, darunter:
- ZIP (.zip)
- TAR (.tar, .tar.gz)
- JAR (Java Archive)
- WAR (Web Application Archive)
- APK (Android Package)
- CPIO (.cpiо)
- RAR (.rar)
- 7Z (.7z)
Diese weite Verbreitung macht ZIP Slip zu einer der gefährlichsten Schwachstellen im Dateihandling, die Anwendungen von großen Organisationen wie HP, Amazon, Apache, Pivotal, Oracle, LinkedIn, Twitter und vielen anderen betrifft.
Die technische Funktionsweise: Wie ZIP Slip funktioniert
Das anfällige Code-Muster
Im Kern nutzt ZIP Slip eine einfache, aber kritische Schwachstelle im Archiv-Extraktionscode aus. Hier ein anfälliges Java-Beispiel:
EnumerationcZipEntrye entries = zip.getEntries();
while (entries.hasMoreElements()) {
ZipEntry entry = entries.nextElement();
File file = new File(destinationDir, entry.getName());
FileOutputStream fos = new FileOutputStream(file);
// Datei extrahieren...
}
Das Problem liegt in der zweiten Zeile: new File(destinationDir, entry.getName()). Dieser Code verbindet den Zielordner blind mit dem Dateinamen aus der ZIP-Datei, ohne Validierung. Wenn entry.getName() etwas wie ../../../etc/cron.d/malicious zurückgibt, wird die Datei nach /etc/cron.d/malicious geschrieben, außerhalb des vorgesehenen Zielverzeichnisses.
Aufbau einer bösartigen Archivdatei
Ein bösartiges ZIP Slip-Archiv wird erstellt, indem eine Archivdatei mit speziell formatierten Dateinamen erzeugt wird. Standard-Komprimierungswerkzeuge unterstützen diese Erstellung nicht, aber Angreifer können eigene Skripte oder spezielle Tools verwenden.
Typischer Aufbau eines bösartigen Archivs:
exploit.zip
├── good_file.txt
├── ../../../../../../tmp/backdoor.sh
├── ../../../etc/cron.d/persistence
└── ../../../../var/www/html/shell.php
Beim Entpacken durch anfälligen Code werden Dateien an Orten außerhalb des Zielverzeichnisses geschrieben, was kritische Systemdateien, Konfigurationsdateien oder ausführbare Skripte überschreiben kann.
Szenarien realer Angriffe
Szenario 1: Webanwendungs-Shell-Upload
Ein Angreifer lädt eine bösartige ZIP-Datei in eine Webanwendung mit Plugin-Installationsfunktion hoch. Das ZIP enthält:
legitimate_plugin_files/...
../../../../var/www/html/shell.php
Nach dem Entpacken erhält der Angreifer eine Webshell unter https://target.com/shell.php, was Remote-Code-Ausführung mit den Privilegien des Webservers ermöglicht.
Szenario 2: Manipulation der Systemkonfiguration
Ein bösartiges Archiv für Linux-Systeme könnte enthalten:
../../.ssh/authorized_keys
../../../etc/cron.d/backdoor
Dies erlaubt es dem Angreifer, seinen SSH-Schlüssel für dauerhaften Zugriff hinzuzufügen oder geplante Tasks mit bösartigem Code zu erstellen.
Szenario 3: Exploitation mobiler Anwendungen
Bei Android-Apps könnte ein Angreifer ein APK-Update mit folgendem Inhalt erstellen:
../../data/data/com.target.app/shared_prefs/settings.xml
../../../lib/libmalicious.so
Dies überschreibt Anwendungseinstellungen oder injiziert bösartige native Bibliotheken.
Warum ist diese Schwachstelle überall?
Das Problem im Ökosystem
Die Verbreitung von ZIP Slip ist auf mehrere systemische Probleme in der Softwareentwicklung zurückzuführen:
Fehlende Standardbibliotheken: Viele Programmier-Ökosysteme, insbesondere Java, verfügen nicht über zentrale, hochstufige Bibliotheken für Archivverarbeitung. Entwickler müssen eigene Extraktionsroutinen schreiben oder anfällige Snippets aus dem Internet kopieren.
Kultur des Code-Reuse: Entwickler kopieren häufig Code aus Stack Overflow, GitHub-Repositories und anderen Community-Quellen. Wird ein anfälliges Code-Snippet populär, verbreitet es sich schnell in Tausenden von Projekten.
Transitive Abhängigkeiten: Anwendungen hängen nicht nur direkt von Bibliotheken ab, sondern erben auch Abhängigkeiten dieser Bibliotheken. Eine Schwachstelle in einer tief verschachtelten Abhängigkeit kann mehrere Schichten beeinflussen.
Unvollständiges Sicherheitsbewusstsein: Viele Entwickler sind nicht geschult, um Directory Traversal bei Archiv-Extraktion zu erkennen, und behandeln Archiv-Handling als routinemäßige Dateioperation, nicht als sicherheitskritische Funktion.
Kürzlich entdeckte Fälle
Die Schwachstelle tritt weiterhin in neuen Kontexten auf:
CVE-2025-3445 (April 2025): Eine ZIP Slip-Schwachstelle wurde in der populären Go-Bibliothek
mholt/archiverentdeckt, die Anwendungen betrifft, die die Funktionarchiver.Unarchive()verwenden. Sie ermöglicht Pfad-Traversal durch speziell gestaltete Symlinks in ZIP-Dateien.CVE-2024-21518 (2024): Der Marktplatz-Installer von OpenCart wurde anfällig für ZIP Slip gefunden, was beliebige Dateischreibvorgänge durch das Admin-Panel erlaubt.
CVE-2024-43399 (2024): Das Mobile Security Framework (MobSF) enthielt eine kritische ZIP Slip-Schwachstelle bei der APK-Analyse.
Diese aktuellen Entdeckungen zeigen, dass trotz jahrelanger Bekanntheit neue Fälle in Legacy- und modernen Codebasen auftauchen.
Die Auswirkungen: Was Angreifer erreichen können
Sofortige Konsequenzen
Remote Code Execution (RCE): Das schlimmste Ergebnis von ZIP Slip. Angreifer können ausführbare Dateien, Shell-Skripte oder dynamische Bibliotheken überschreiben, die anschließend vom System oder Nutzern ausgeführt werden.
Datenzerstörung: Bösartige Archive können kritische Daten, Konfigurationsdatenbanken oder Backups angreifen, was zu Datenverlust oder -beschädigung führt.
Privilegieneskalation: Durch Überschreiben sensibler Systemdateien wie /etc/sudoers oder SSH-Authorized-Keys können Angreifer ihre Privilegien erhöhen.
Persistenzmechanismen: Angreifer können langfristigen Zugriff etablieren, indem sie Startskripte, Cron-Jobs, systemd-Dienste oder andere Auto-Execution-Mechanismen modifizieren.
Sekundäre Angriffsvektoren
ZIP Slip dient oft als erster Einstiegspunkt für komplexere Angriffe:
- Supply-Chain-Angriffe: Kompromittierung von Build-Systemen oder Dependency-Repositories durch Einschleusen bösartiger Codes via ZIP Slip
- Laterale Bewegungen: Nutzung eines kompromittierten Systems, um bösartige Archive auf andere netzwerkverbundene Systeme zu extrahieren
- Ransomware-Verbreitung: Überschreiben kritischer Dateien vor Verschlüsselung, um Wiederherstellung ohne Backups unmöglich zu machen
Erkennung von ZIP Slip-Schwachstellen
Code-Audit-Techniken
1. Suche nach anfälligen Mustern
Achten Sie auf Code, der Archive ohne ordnungsgemäße Validierung extrahiert:
// ROTER HAKEN: Direkte Verkettung ohne Validierung
File file = new File(baseDir, entry.getName());
// ROTER HAKEN: Kein Pfad-Kanonisierung-Check
String filePath = destinationDir + File.separator + entry.getName();
2. Analyse der Archiv-Verarbeitungsfunktionen
Untersuchen Sie Code, der: - ZIP-, TAR-, RAR- oder andere Archivdateien öffnet - Durch Archiv-Einträge iteriert - Extrahierten Inhalt auf die Festplatte schreibt - Hochgeladene Archive verarbeitet
3. Abhängigkeits-Scanning
Verwenden Sie automatisierte Tools, um anfällige Abhängigkeiten zu identifizieren. Sicherheitsplattformen wie Snyk führen aktualisierte Listen betroffener Bibliotheken in verschiedenen Ökosystemen.
Laufzeit-Erkennung
Dateisystemüberwachung: Überwachen Sie unerwartete Dateischreibvorgänge außerhalb der vorgesehenen Verzeichnisse, insbesondere in kritischen Systempfaden wie /etc, /bin und /lib.
Inhaltsscan von Archiven: Vor dem Entpacken Archivinhalte auf verdächtige Dateinamenmuster prüfen, z.B.:
- ../ oder ..\-Sequenzen
- Absolute Pfade (beginnend mit / oder Laufwerksbuchstaben)
- Sonderzeichen oder Kodierungstricks, um Filter zu umgehen
Sandbox-Extraktion: Extrahieren Sie Archive in isolierten Umgebungen (Container, VMs), bevor Sie verifizierten Inhalt in die Produktion überführen.
Prävention und Abmilderung
Sichere Programmierpraktiken
1. Pfadvalidierung und -kanonisierung
Validieren Sie stets die extrahierten Dateipfade gegen das Zielverzeichnis:
public static boolean isSafePath(File destination, ZipEntry entry) throws IOException {
File destinationFile = new File(destination, entry.getName());
String canonicalDestination = destination.getCanonicalPath();
String canonicalTarget = destinationFile.getCanonicalPath();
return canonicalTarget.startsWith(canonicalDestination + File.separator);
}
2. Verwendung sicherer Bibliotheken
Bevorzugen Sie Bibliotheken mit integrierter ZIP Slip-Absicherung:
- Java: Apache Commons Compress (neuere Versionen)
- Python:
zipfilemit Validierung - .NET:
System.IO.Compressionmit Pfadprüfungen - Node.js:
extract-zipmit Sicherheitsupdates
3. Mehrschichtiger Schutz
import os
import zipfile
def safe_extract(zip_path, extract_to):
with zipfile.ZipFile(zip_path, 'r') as zip_ref:
for member in zip_ref.namelist():
# Pfad normalisieren und validieren
member_path = os.path.normpath(os.path.join(extract_to, member))
# Sicherstellen, dass innerhalb des Zielverzeichnisses
if not member_path.startswith(os.path.abspath(extract_to)):
raise Exception(f"Pfad-Traversal-Versuch: {member}")
# Zusätzliche Checks
if os.path.isabs(member):
raise Exception(f"Absolute Pfade nicht erlaubt: {member}")
# Sicher extrahieren
zip_ref.extract(member, extract_to)
Anwendungsspezifischer Schutz
1. Upload-Beschränkungen
- Begrenzen Sie akzeptierte Archivformate auf das Notwendige
- Implementieren Sie Dateigrößenlimits, um Zip-Bomb-Angriffe zu verhindern
- Erfordern Sie Authentifizierung und Autorisierung für Upload-Funktionen
- Protokollieren Sie alle Archiv-Extraktionen mit Metadaten
2. Prinzip der minimalen Rechte
Führen Sie Archiv-Extraktionsprozesse mit minimalen Berechtigungen aus: - Verwenden Sie dedizierte Service-Accounts mit eingeschränktem Dateisystemzugriff - Implementieren Sie Mandatory Access Control (MAC) - Nutzen Sie Container oder Sandboxes für untrusted Content
3. Eingabekontrolle
Vor der Verarbeitung eines Archivs: - Scannen Sie auf Malware und verdächtige Muster - Validieren Sie Archivstruktur und Integrität - Überprüfen Sie auf unvernünftige Kompressionsraten (Zip-Bomb-Gefahr) - Verwerfen Sie Archive mit verdächtigen Eintragsnamen
Infrastrukturüberlegungen
Container-Isolation: Archivdateien in Docker-Containern oder ähnlichen Isolationssystemen extrahieren, um Pfad-Traversal-Angriffe am Host-System zu verhindern.
Dateisystemrechte: Konfigurieren Sie strenge Berechtigungen auf Systemverzeichnissen, um unbefugte Schreibzugriffe zu verhindern, selbst bei Pfad-Traversal.
Netzwerksegmentierung: Isolieren Sie Systeme, die Nutzer-Uploads verarbeiten, von kritischer Infrastruktur, um die Angriffsfläche zu begrenzen.
Tests auf ZIP Slip
Erstellen von Testfällen
Sicherheitsteams sollten ZIP Slip-Tests in ihre Bewertungsroutinen integrieren:
Testfall 1: Grundlegende Traversal
Archiv enthält: ../../../etc/test.txt
Erwartetes Ergebnis: Fehler beim Entpacken oder Datei innerhalb des Zielverzeichnisses
Testfall 2: Kodiertes Traversal
Archiv enthält: ..%2F..%2F..%2Fetc%2Ftest.txt
Erwartetes Ergebnis: Fehler beim Entpacken nach Decodierung
Testfall 3: Windows-Pfad-Traversal
Archiv enthält: ..\..\..\Windows\System32\test.dll
Erwartetes Ergebnis: Fehler beim Entpacken auf Windows-Systemen
Testfall 4: Absolute Pfade
Archiv enthält: /tmp/malicious.sh
Erwartetes Ergebnis: Absolute Pfade werden abgelehnt
Automatisierte Test-Tools
Mehrere Tools helfen, ZIP Slip-Schwachstellen zu erkennen:
- Snyk: Umfassende Abhängigkeitsanalyse mit ZIP Slip-Erkennung
- OWASP Dependency-Check: Open-Source-Tool zur Identifikation vulnerabler Komponenten
- SonarQube: Statische Analyse mit Sicherheitsregeln für Pfad-Traversal
- Eigene Skripte: Spezifische Tests für Ihre Archiv-Handling-Codes
Warum jede Upload-Funktion Validierung braucht
Die Funktion zum Hochladen von Dateien ist in modernen Anwendungen allgegenwärtig:
- CMS-Plattformen: WordPress, Drupal und ähnliche Systeme erlauben Plugin- und Theme-Uploads
- Cloud-Speicher: Dropbox, Google Drive, OneDrive verarbeiten Milliarden von Archiven
- Entwicklungstools: Paketmanager, CI/CD-Systeme und IDE-Plugins verarbeiten kontinuierlich Archive
- Mobile Apps: App-Stores, Update-Mechanismen und Content-Delivery-Systeme
- Unternehmenssoftware: Dokumentenmanagement, Backup-Systeme und Kollaborationstools
Jede dieser Komponenten stellt eine potenzielle Angriffsfläche dar. Ein einzelner unvalidierter Archiv-Entpackungsvorgang kann ganze Systeme kompromittieren, daher ist Validierung unerlässlich.
Der Upload-zu-Ausführung-Workflow
Typischer Ablauf:
- Nutzer lädt Archiv hoch
- Server speichert Datei temporär
- Entpackung beginnt (SCHWACHSTELLE)
- Anwendung verarbeitet extrahierten Inhalt
- Inhalt steht Nutzern/Systemen zur Verfügung
Der Entpackungsschritt ist die Schwachstelle von ZIP Slip. Wenn die Anwendung erst spät erkennt, dass etwas nicht stimmt (falls überhaupt), sind bösartige Dateien bereits an kritischen Stellen geschrieben.
Branchenreaktion und aktueller Stand
Die Sicherheitsgemeinschaft hat erhebliche Anstrengungen unternommen, ZIP Slip zu adressieren:
Bibliotheken-Patches: Die meisten großen Archivierungsbibliotheken haben Updates veröffentlicht. Das Snyk-Team pflegt ein GitHub-Repository, das betroffene Bibliotheken und deren Fix-Status in verschiedenen Ökosystemen verfolgt.
Entwicklerbildung: Sicherheits-Trainingsprogramme behandeln ZIP Slip inzwischen als Kernthema in sicheren Programmierkursen.
Automatisches Scannen: Moderne Sicherheitstools integrieren ZIP Slip-Erkennung in ihre Schwachstellen-Datenbanken, um Organisationen bei der Identifikation betroffener Abhängigkeiten zu unterstützen.
Standardverbesserungen: Einige Ökosysteme entwickeln zentrale, sichere Archivverarbeitungsbibliotheken, um die Notwendigkeit eigener Implementierungen zu reduzieren.
Dennoch bleiben Herausforderungen:
- Legacy-Systeme: Ältere Anwendungen werden wahrscheinlich nie aktualisiert
- Dependency-Hell: Aktualisierung anfälliger transitiver Abhängigkeiten kann Anwendungen zerbrechen
- Zero-Day-Varianten: Neue Varianten tauchen ständig auf, wie die CVEs 2025 zeigen
- Bewusstseinsmangel bei Entwicklern: Viele sind sich des Problems nicht bewusst
Zusammenfassung bewährter Praktiken
Für Entwickler
- Vertraue niemals den Archiv-Eintragswegen – immer gegen das Zielverzeichnis validieren
- Verwende sichere Bibliotheken – nutze gut gepflegte Bibliotheken mit eingebauten Schutzmechanismen
- Implementiere Allowlists – definiere akzeptable Speicherorte und lehne alles andere ab
- Führe Sicherheitstests durch – integriere ZIP Slip-Tests in deine Testläufe
- Folge dem Prinzip der minimalen Rechte – führe die Extraktion mit minimalen Dateisystemrechten aus
Für Sicherheitsteams
- Regelmäßige Audits durchführen – Codebasen und Abhängigkeiten auf Schwachstellen prüfen
- Monitoring implementieren – Unerwartete Dateischreibvorgänge in Echtzeit erkennen
- Entwickler schulen – Teams über Directory Traversal-Risiken aufklären
- Upload-Funktionen testen – gezielt Archiv-Handling in Penetrationstests prüfen
- Vorfallmanagement vorbereiten – Pläne für ZIP Slip-Angriffe bereitstellen
Für Organisationen
- Abhängigkeiten aktualisieren – Archivierungsbibliotheken regelmäßig mit Sicherheitspatches versehen
- DevSecOps einführen – Sicherheit in CI/CD-Prozesse integrieren
- Code-Reviews durchsetzen – Sicherheitsüberprüfung bei Archiv-Handling-Code
- Mehrschichtiger Schutz – Validierung, Sandboxing, Berechtigungen kombinieren
- Vorbereitung auf Vorfälle – Rollback-Strategien bei Kompromittierungen
Zukunft der Archiv-Sicherheit
Da Anwendungen weiterhin stark auf Archivdateien für Distribution, Backup und mehr angewiesen sind, wächst die Bedeutung sicherer Archiv-Handling-Methoden:
Neue Bedrohungen: Neue ZIP Slip-Varianten erscheinen, z.B.: - Symlink-basierte Traversal (wie CVE-2025-3445) - Kodierungstricks, die einfache Filter umgehen - TOCTOU-Angriffe während der Extraktion
Cloud-native Herausforderungen: Serverless-Funktionen und Container-Apps bieten neue Angriffsflächen, bei denen ZIP Slip IAM-Richtlinien, Lambda-Funktionen oder Container-Orchestrierung kompromittieren könnte.
KI und Automatisierung: Mit KI-gestützten Entwicklungstools, die Code generieren, wird es immer wichtiger, sicherzustellen, dass sie keine anfälligen Muster reproduzieren.
Fazit
ZIP Slip ist ein Paradebeispiel für eine Sicherheitslücke, die leicht ausnutzbar, schwer zu erkennen, in vielen Ökosystemen verbreitet und potenziell katastrophal ist. Die anhaltende Präsenz – mit neuen CVEs im Jahr 2025 – zeigt, dass bloßes Bewusstsein nicht ausreicht.
Jede Anwendung, die Archive verarbeitet, insbesondere bei Nutzer-Uploads, muss ordnungsgemäß validieren und absichern. Es ist zu riskant, auf Annahmen über Archivintegrität zu vertrauen oder zu glauben: “Das passiert uns nicht.”.
Durch das Verständnis der technischen Details von ZIP Slip, die Implementierung robuster Validierung, den Einsatz sicherer Bibliotheken und ständige Überwachung können Entwickler und Organisationen ihre Systeme vor dieser allgegenwärtigen Bedrohung schützen. Die Schwachstelle ist überall, aber mit den richtigen Vorsichtsmaßnahmen muss ihre Ausnutzung nicht sein.
Denken Sie daran: Vertraue keinem Archiv. Validieren Sie jeden Pfad. Sichern Sie Ihre Extraktionen. Das ist entscheidend für die Systemsicherheit.
Weitere Ressourcen
- Snyk ZIP Slip-Forschung: https://security.snyk.io/research/zip-slip-vulnerability
- GitHub-Repository: https://github.com/snyk/zip-slip-vulnerability
- OWASP Path Traversal: https://owasp.org/www-community/attacks/Path_Traversal
- CISA-Beratungen: Regelmäßige Updates zu ZIP Slip in industriellen Steuerungssystemen
- CVE-Datenbank: Suche nach “ZIP Slip” oder “Pfad-Traversal” für die neuesten Offenlegungen
Artikel-Länge: ca. 2.000 Wörter
Letzte Aktualisierung: November 2025
SEO-Schlüsselwörter: ZIP Slip Schwachstelle, Archiv-Extraktionssicherheit, Pfad-Traversal-Angriff, Datei-Upload-Sicherheit, Verzeichnis-Traversal, ZIP-Datei-Exploit, sichere Archivverarbeitung, CVE-2025-3445, bösartiges Archiv, Remote-Code-Ausführung
Related InstaTunnel pages
Continue from this article into the most relevant product guides and workflows.
Related Topics
Keep building with InstaTunnel
Read the docs for implementation details or compare plans before you ship.