
Fehlerhaftes ZIP-Archiv, das die Antivirus-Erkennung umgeht, indem es Method=0 (stored) deklariert, während es einen DEFLATE-komprimierten Payload enthält.
ZIP-Format-Verwirrungstechnik, die 98 % der Antiviren-Engines umgeht.
CVE-2026-0866 | VU#976247 | Veröffentlicht am 10. März 2026
Erstellen Sie eine ZIP-Datei, bei der:
Compression Method = 0 (STORED)
Actual data = DEFLATE compressed
CRC-32 = Checksum of uncompressed payload
AV Engine: Reads Method 0 → Scans compressed noise → No detection
Attacker: Ignores Method field → Decompresses as DEFLATE → Recovers payload
| Datei | Technik | VirusTotal |
|---|
| baseline.zip | Gültiges ZIP | 55/67 |
| method_mismatch.zip | Zombie ZIP | 1/66 |
98 % Umgehung. Gleiche Nutzlast. Gleiche Bytes. Anderer Container.
# Generate a Zombie ZIP
python3 zombie_zip.py
# Upload method_mismatch.zip to VirusTotal
# Observe 1/51 detection vs 55/67 for baseline
# Recover payload programmatically
python3 loader_poc.py method_mismatch.zip
# Outputs byte-identical EICAR (SHA-256: 275a021b...)
Container.py verallgemeinert die Zombie-ZIP-Technik zu einem eigenständigen Packer/Unpacker für beliebige Dateien unter Verwendung des .cpack-Formats.
Container.py nimmt eine beliebige Datei, komprimiert deren Inhalt mit DEFLATE und schreibt sie in ein ZIP-Archiv, das als STORED (Method=0) deklariert ist. Das Ergebnis ist eine .cpack-Datei – ein inoffizielles Containerformat, das Dateiinhalte vor Einblicken schützt.
Im Gegensatz zum ursprünglichen Zombie-ZIP-PoC wird die CRC in einer .cpack-Datei über die komprimierten (DEFLATE-)Bytes berechnet, nicht über die ursprüngliche Nutzlast. Das bedeutet, das Archiv ist strukturell gültig – keine CRC-Fehler, keine Korruptionsflags. Der Inhalt ist für alles, was nicht der Unpacker ist, schlicht undurchsichtig.
| Datei | Technik | VirusTotal |
|---|---|---|
| eicar.com | Rohe EICAR-Nutzlast | 55/67 |
| eicar.com.cpack | Container-gepackt | 0/62 |
0/62. Die eine Datei, die jede Antiviren-Engine der Welt gezielt erkennen soll, wird unsichtbar gemacht.
# Requires PyQt6
pip install PyQt6
# Launch the GUI
python3 Container.py
filename.cpack (gepackt).cpack-Datei → stellt die Originaldatei wieder her (entpackt)Die zugrunde liegende Technik wurde von mehreren Stellen als kein Sicherheitsproblem eingestuft. CERT/CC hat am 18. März 2026 festgestellt, dass die Zombie-ZIP-Technik „keine gültige Schwachstelle darstellt“ und „keine impliziten oder expliziten Sicherheitskontrollen umgeht oder beeinträchtigt“. Cisco hat sie als „Härtungsempfehlung“ eingestuft. Mehrere Forscher haben öffentlich erklärt, dass es sich nicht um eine Schwachstelle handelt.
Da dies als Nicht-Problem deklariert wurde, ermöglicht Ihnen dieses Tool einfach, Ihre Dateien und Daten mithilfe einer Technik ohne Sicherheitsauswirkungen vor Prüfung zu schützen.
0/62 bei EICAR deutet darauf hin, dass die Auswirkungen möglicherweise untertrieben wurden.
zombie_zip.py - Generatorskriptmethod_mismatch.zip - Vorab generierter PoC mit EICARbaseline.zip - Gültiges ZIP zum Vergleichloader_poc.py - Demonstriert die programmatische Wiederherstellung der NutzlastContainer.py - GUI-Packer/Unpacker für beliebige Dateien (.cpack-Format)Antiviren-Engines vertrauen dem ZIP-Methodenfeld. Wenn Method=0 (STORED) ist, scannen sie die Daten als rohe unkomprimierte Bytes. Aber die Daten sind tatsächlich DEFLATE-komprimiert – der Scanner sieht also komprimiertes Rauschen und findet keine Signaturen.
Im ursprünglichen Zombie-ZIP-PoC wird die CRC auf die Prüfsumme der unkomprimierten Nutzlast gesetzt, wodurch eine Diskrepanz entsteht, die Standard-Extraktionstools (7-Zip, unzip, WinRAR) dazu veranlasst, Fehler zu melden oder beschädigte Ausgabe zu extrahieren.
Container.py vermeidet dies vollständig. Da zipfile.ZipFile die CRC über die geschriebenen Bytes (die DEFLATE-komprimierten Daten) berechnet, stimmt die CRC mit dem Gespeicherten überein. Standardtools öffnen das Archiv ohne Fehler. Sie extrahieren erfolgreich komprimiertes Rauschen. Keine CRC-Fehler. Keine Korruptionsflags. AV scannt das Rauschen und meldet sauber.
Ein zweckgebundener Loader, der die gespeicherten Daten als DEFLATE dekomprimiert, stellt die Nutzlast jedoch perfekt wieder her. Die Unpack-Funktion von Container.py demonstriert dies – standardmäßiges zlib.decompressobj mit rohem DEFLATE (wbits=-15).
Die Schwachstelle ist die Scanner-Umgehung: Sicherheitskontrollen behaupten „kein Schadcode vorhanden“, während Schadcode vorhanden und trivial wiederherstellbar ist.
Dies ist keine Endbenutzer-Extraktionsschwachstelle. Es ist eine gestaffelte Zustellungs-/Schmuggeltechnik:
.cpack-ContainerDies entspricht etablierten Malware-Zustellungsmustern (ISO-Schmuggel, HTML-Schmuggel, CAB-Missbrauch), bei denen Angreifer benutzerdefinierte Loader anstelle von Verbraucher-Extraktionstools verwenden.
.cpack.Chris Aziz - Bombadil Systems
MIT - Nur für autorisierte Sicherheitsforschung.