Im Programm UnZip für Windows des Anbieters InfoZip gibt es mehrere Sicherheitslücken durch Pufferüberläufe. Zudem gibt es ein p7zip-Sicherheitsupdate für Debian.
Anzeige
Ende Januar 2018 hatte ich im Artikel 7-Zip mit Sicherheitslücken – updaten! über eine Sicherheitslücke im Tool 7-Zip berichtet. Der Entwickler stellte zwar ein Update bereit, wegen anderer Ungereimtheiten hatte ich im Blog-Beitrag Warnung: Auf 7-Zip verzichten aber vorerst von dessen Verwendung abgeraten. Es wurde dann die Frage gestellt, welche 'Alternativen' es denn gäbe.
Was ist UnZip?
Auf der Info-Zip-Seite wird UnZip als das 'The Third Most Portable Program in the World!' vorgestellt. UnZip ist ein Extraktionsprogramm für Archive, die im .zip-Format komprimiert sind. Das Programm ist mit PKWAREs PKZIP- und PKUNZIP-Dienstprogrammen für MS-DOS als auch mit Info-ZIPs eigenem Zip-Programm kompatibel. Aber der Fokus liegt bei UnZip in erster Linie auf der Portabilität und Nicht-MSDOS-Funktionalität. Das Programm steht auch für OpenVMS oder andere Betriebssysteme zur Verfügung.
UnZip von InfoZip wird als Standard-Dienstprogramm zum Entpacken von ZIP-Archiven auf fast allen *nix-Systemen verwendet. Es wird mit vielen handelsüblichen Produkten auf dem Markt ausgeliefert.
UnZip listet, testet oder extrahiert Dateien aus einem .zip-Archiv. Das Standardverhalten (ohne Optionen) ist es, alle Dateien aus der angegebenen Zip-Datei in das aktuelle Verzeichnis (und Unterverzeichnisse darunter) zu extrahieren. Ein Zusatzprogramm, Zip, erstellt .zip-Archive; beide Programme sind kompatibel mit Archiven, die von PKZIP und PKUNZIP für MS-DOS erstellt wurden.
Aber in vielen Fällen unterscheiden sich die Programmoptionen oder das Standardverhalten. Beispielsweise erstellt UnZip standardmäßig die gespeicherte Verzeichnisstruktur neu; PKUNZIP entpackt standardmäßig alle Dateien im aktuellen Verzeichnis. Die Version UnZip 6.0 stammt aber bereits von April 2009, ist also uralt.
Anzeige
UnZip fällt ebenfalls weg
Abgesehen vom Alter des Tools fällt UnZip auch aus Sicherheitsgründen für den Gebrauch weg. Denn auf seclists.org findet sich dieser Eintrag von Anfang Februar 2018. In den UnZip-Versionen kleiner 6.00 und in den UnZip-Versionen unter 6.1c22 klaffen gleich mehrere Sicherheitslücken (CVE-2018-1000031, CVE-2018-1000032, CVE-2018-1000033, CVE-2018-1000034, CVE-2018-1000035).
CVE-2018-1000035
Zu dieser Sicherheitslücke kommt es durch einen heap-basierten Pufferüberlauf beim Entpacken von passwortgeschützten ZIP-Archiven. Ein Angreifer kann diese Sicherheitslücke ausnutzen, um Heap-Blöcke zu überschreiben. Dies ermöglicht ggf. eine eine beliebige Codeausführung auf dem Zielsystem.
Um diese Sicherheitslücke auszunutzen, reicht es aus, ein manipuliertes ZIP-Archiv zu entpacken. Dazu kann jeder der folgenden Aufrufe verwendet werden:
unzip Malware.zip
unzip -p Malware.zip
unzip -t Malware.zip
Bei neueren Builds wird das Risiko für diese Sicherheitslücke teilweise gemindert. Denn moderne Compiler ersetzen unsichere Funktionen automatisch durch Funktionen mit Prüfungen. Die Funktion sprintf wird z.B. durch sprintf_chk ersetzt. Dies geschieht durch den Compiler an Stellen, an denen die Länge des Zielpuffers berechnet wird.
Es ist aber zu erwähnen, dass UnZip auf vielen älteren Systemen oder auf exotischen Architekturen eingesetzt wird, in denen diese Schutzmaßnahmen nicht vorhanden sind. Außerdem fehlt dieser Schutz in den im Internet zum Download bereitgestellten, vorkompilierten Binärdateien. Diese stammen, wie oben erwähnt, aus dem Jahr 2009 und Compiler haben diesen Schutz standardmäßig nicht über Flags aktiviert. Die benötigten Compiler-Flags sind auch nicht im Makefile von UnZip angegeben. Kompilierte Anwendungen sind daher nur dann geschützt, wenn dieser Schutz im der verwendete Compiler standardmäßig aktiviert ist (nur bei modernen Compilern der Fall).
Weitere Sicherheitslücken in UnZip
In UnZip sind weitere Sicherheitslücken, die teilweise aber nur die nächste Beta-Version 6.1c22 betreffen, die ebenfalls zu einem einem heap/BSS-basierten Pufferüberlauf, oder zu einem Heap out-of-bounds-Fehler führen. Und es gibt mehrere Verwundbarkeiten im LZMA-Kompressionsalgorithmus (CVE-2018-1000034). Diese und weitere Fehler sind auf seclists.org beschrieben. Die Sicherheitsbeeinträchtigung durch diese Fehler wird als hoch eingestuft. Die Bugs sollen in der Version 6.10c23 behoben sein.
p7zip-Sicherheitsupdate
Zudem gibt es für für Debian ein Sicherheitsupdate für das Paket p7zip, welches die Sicherheitslücke CVE-2017-17969 schließt. landave hat eine heap-basierte Pufferüberlauf-Verwundbarkeit in der NCompress::NShrink::CDecoder::CodeReal-Methode von p7zip entdeckte eine. Diese tritt in der Datei 7zr auf, die für Archive mit hoher Kompressionsrate verwendet wird. Ein Angreifer kann über die Sicherheitslücke einen Denial-of-Service zu verursachen, oder möglicherweise die Ausführung von beliebigem Code mit den Privilegien des Benutzers veranlassen. Details finden sich in diesem seclists.org-Eintrag.
Anzeige
Lässt ja vermuten das so gut wie alle Entwickler von Komprimierungsprogrammen, unter dem Druck das schnellste und effektivste Programm zu entwickeln. schon immer zu Gunsten der Performance auf die Sicherheit gepfiffen haben.