7-ZIP Version 18.05 veröffentlicht

[English]Noch eine Information für Benutzer des Packprogramms 7-Zip. Der Entwickler der Software hat das für diverse Plattformen verfügbare Programm in der Windows-Variante auf die Version 18.05 aktualisiert (danke an Blog-Leser Dekre für den Hinweis), um eine Sicherheitslücke zu schließen. Zeit, für einen genaueren Blick.


Anzeige

Einige Worte zur Version 18.05

Die Version 18.05 wurde laut der 7-zip.org-Seite am 30. April 2018 aktualisiert. Die sourceforge.net-Seite ist bezüglich der Neuerungen recht unpräzise und führt nur Änderungen nach 7-Zip Version 18.01 auf. Neben einem Problem mit Windows 10 mit ‘Large Pages’, der behoben worden sein soll, gibt der Autor an, die Sicherheitslücke CVE-2018-10115 im RAR-Entpack-Code behoben zu haben.

Bei deskmodder.de ist man sich sicher, dass die Sicherheitslücke CVE-2018-10115 behoben wurde und gibt die vielen ‘Verbesserungen’ der neue Version an. Der Changelog des Entwicklers gibt diese aber als Änderungen nach 7-Zip Version 18.01 an.

Interessanter ist die Diskussionsseite auf sourceforge.net. Ein Nutzer beschwert sich, dass der Installer nicht mehr unter Windows 10 Version 1803 läuft. Ein weiterer Nutzer merkt an, dass die Linux-Variante auf Version 16.02 stehen geblieben ist. Würde also bedeuten, dass dort noch einige Sicherheitslücken im RAR-Code ungefixt sind.

Details zur Sicherheitslücke CVE-2018-10115

Kommen wir nun zum ersten Punkt einer unerquicklichen Geschichte. In der CVE-Datenbank findet sich keine Details zu CVE-2018-10115 – ein Zeichen, dass man darauf wartet, dass die Sicherheitslücke in einem Produkt geschlossen wird. Da ich die Information zu CVE-2018-10115 und die Verbindung zu 7-zip aber habe, handelt es sich um einen Bug in diesem Produkt. Aber was war das Problem?

Hier wird man wieder einmal in Daves landave-Blog fündig. Dort findet sich seit dem 1. Mai 2018 der Beitrag 7-Zip: From Uninitialized Memory to Remote Code Execution. Der Autor des Blog-Beitrags geht auf ein Problem im UnRAR-Code ein, der in 7-zip verwendet wird. Und die UnRAR-Bibliotheken sind sicherheitstechnisch ein Mienenfeld. Bereits vor einiger Zeit sind im landave-Blog Informationen zu ähnlichen Sicherheitslücken gefunden worden (siehe mein Blog-Beitrag 7-Zip mit Sicherheitslücken – updaten!).

Der neue Fehler tritt im Zusammenhang mit der Handhabung von Solid Compression im UnRAR-Teil des Programmes auf. Dave legt die technischen Details in seinem englischsprachigen Blog-Beitrag offen. Das Problem: Es kann nicht immer sichergestellt werden, dass bestimmte Variablen beim Entpacken von RAR-Archiven initialisiert werden. Ein nicht initialisierter Speicher kann zu einem Heap-basierenden Pufferüberlauf im Speicher führen. Und so ein Speicherüberlauf birgt potentiell die Gefahr, dass dies für Remote Code Execution ausgenutzt werden kann. Zu Deutsch: Wenn es schlecht läuft, reicht eine präparierte RAR-Archivdatei, um diesen Pufferüberlauf auszulösen und das System möglicherweise anzugreifen. 

Das generelle Problem mit 7-Zip

Bereits im Blog-Beitrag Warnung: Auf 7-Zip verzichten hatte ich auf ein Problem mit 7-Zip hingewiesen. Der 7-Zip-Entwickler verzichtete bis zur Version 18.00 (Beta) auf Mechanismen zur Unterstützung von DEP und ASLR in 7-Zip. Kurz nach der Veröffentlichung eines Blogeintrags 7-Zip-Fehlern CVE-2017-17969 und CVE-2018-5996 veröffentlichte Igor Pavlov 7-Zip 18.01 mit aktiviertem /NXCOMPAT-Flag, um DEP auf allen Plattformen zu aktivieren.


Werbung

Außerdem haben alle dynamischen Bibliotheken (7z.dll, 7-zip.dll, 7-zip32.dll) das /DYNAMICBASE-Flag gesetzt und verwenden eine Relocation-Tabelle. Daher unterliegt der Großteil des laufenden Codes der ASLR.

Alle Hauptprogramme (7zFM.exe, 7zG.exe, 7z.exe) kommen jedoch ohne /DYNAMICBASE und haben eine Stripped Relocation-Tabelle. Das bedeutet, dass sie nicht nur nicht der ASLR unterliegen, sondern Sie können ASLR nicht einmal mit einem Tool wie EMET oder seinem Nachfolger, dem Windows Defender Exploit Guard, durchsetzen. Natürlich kann ASLR nur wirksam sein, wenn alle Module richtig randomisiert sind. Darauf weist Dave in seinem Beitrag 7-Zip: From Uninitialized Memory to Remote Code Execution explizit hin.

In meinem englischsprachigen Blog-Beitrag hier gibt es einen Leserkommentar, der den Quellcode von 7-Zip genommen und mit den Flags NXCOMPAT und DYNAMICBASE übersetzt hat. Die Ergebnisse sind durchaus als interessant zu bezeichnen, da der 7-Zip-Entwickler Igor Pavlo ja aus Gründen der Code-Effizienz auf diese Optionen verzichtete.

Problem im 7-Zip-Installer

Wer jetzt denkt: Prima, ich aktualisiere auf 7-Zip Version 18.05, damit ist die Sicherheitslücke CVE-2018-10115 geschlossen, sollte folgendes wissen. Bei 7-Zip gibt es aber noch ein zweites Problem, welches mit dem 7-Zip-Installer daherkommt. Dieser ist für DLL-Hijacking anfällig.

Zum Hintergrund: Der Installer entpackt seine setup*.exe-Dateien in ein %Temp%-Verzeichnis, was mit normalen Nutzerrechten passieren kann. Um die Installation auszuführen, fordert der Installer dann administrative Berechtigungen an.

Ein Angreifer, der eine Malware unter einem lokalen Standardkonto zur Ausführung gebracht hat, braucht diesen Fall nur zu erkennen. So etwas lässt sich über Win32-API-Aufrufe ermitteln. Legt 7-Zip bei der Aktualisierung ein Verzeichnis 7zS<abcd>.tmp an, könnte die Malware sich darüber informieren lassen und dann eine gefakte Datei UXTheme.dll in dieses Unterverzeichnis kopieren. Diese Datei wird aufgerufen, sobald der Setup-Assistent ausgeführt wird.

Und damit erlangt die Malware über diesen Umweg administrative Berechtigungen. Darauf hat Stefan Kanthak mich diverse Male in Zusammenhang mit 7-Zip, Skype etc. hingewiesen. Stefan Kanthak hat dies am Beispiel des Mozilla-Installers auf seclists.org für ein ähnliches Szenario beschrieben. 

Administratoren in Firmen, die die üblichen Deployment Tools einsetzen, um Software-Updates auszurollen, sind vor diesem Angriff ebenfalls nicht sicher. Denn die Deployment Tools laufen typischerweise als Dienst unter dem SYSTEM-Account, und verwenden %SystemRoot%\Temp\ zum Entpacken.

Unter diesem Blickwinkel hatte ich in den nachfolgenden Blog-Beiträgen empfohlen, auf 7-Zip zu verzichten. Doof ist allerdings, das die 7-Zip-Funktionen in vielen Produkten mit verwendet werden.

Ähnliche Artikel:
Software-Updates: VLC, 7-Zip, LibreOffice
Warnung: Auf 7-Zip verzichten
7-Zip mit Sicherheitslücken – updaten!


Anzeige
Dieser Beitrag wurde unter Sicherheit abgelegt und mit , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

11 Responses to 7-ZIP Version 18.05 veröffentlicht

  1. Georg S. sagt:

    Nachdem gestern Win 10 v1803 x64 (April 2018 Update) auf meinem China-Tablet (Chuwi Hi10) installiert worden ist, ohne dass ich das Update angestoßen habe (!), habe ich anschließend 7-Zip auf v18.05 (msi-Datei) ohne Probleme aktualisiert.
    Das Tablet verfügt nur über 4 GB RAM und eine 64 GB “große” eMMC-Platte, so dass ich die vorherigen Windows-Systemdaten (ca. 11 GB) via Datenträgerbereinigung löschen musste.
    Bitdefendet Internet Security 2018 musste auch neu installiert werden, denn Windows 10 v1803 hatte Probleme mit der Firewall.

    • KURU sagt:

      @ Georg S.: Kann man 7-zip durch “Drüberinstallieren” updaten, muss man die alte Version deinst.? Im Programm finde ich keine Update-Funktion.

      • Georg S. sagt:

        “Drüberinstallieren” funktioniert auf meinen Rechnern einwandfrei, eigene Einstellungen werden auch übernommen!

      • Martin Feuerstein sagt:

        Prinzipiell: ja geht. Aber: Wenn x86/x64 und/oder MSI/EXE-Installer gemischt werden, kann es passieren, dass die verschiedenen Installer verschiedene Deinstallationsroutinen mitbringen und mehrere Einträge für die Deinstallation vorhanden sind. Ebenso kann es beim Mischen von x86/x64 in verschiedenen Versionen passieren, dass versehentlich eine noch installierte, ältere Version ausgeführt wird.
        Also: Aufpassen, was über welche Vorversion “drüberinstalliert” wird. Oder vorher manuell deinstallieren.

  2. Martin Feuerstein sagt:

    Hui, wieder viele interessante Infos hier. DEP, ASLR und noch viele andere “Buzzwords”, die den gemeinen Nutzer blöd aus der Wäsche gucken lassen :-) Wenn ich das richtig lese, unterstützt die neue Version die Sicherheitsfunktionen nun.

    Das Problem von DLL-Hijacking gibt es mit den MSI-Installern AFAIK nicht, da dort keine ausführbaren Dateien außerhalb des Windows-Verzeichnisses ausgeführt werden (es sei denn, in der MSI sind per Custom Action Aufrufe von “gewöhnlichen Programmen” enthalten). Einige Nutzer hatten protestiert (so auch ich), als der Entwickler die Bereitstellung der Windows Installer-Pakete einstellen wollte.

    Wobei sich DLL Hijacking auch per Registry-Eintrag einschränken lässt, das betrifft aber nicht nur 7-Zip.

    Randnotiz: Ein RAR-Archiv ist mir heute erst wieder untergekommen, dachte schon das wäre ausgestorben. Ein Nutzer konnte die Datei (per 7-zip(!!!) :-D) nicht entpacken. Kunststück: “entpacken nach Unterordner” funktioniert auf einer CD nicht.

    • Alfred E. Neumann sagt:

      AUTSCH!
      Das von Günter Born im Artikel angesprochene DLL Hijacking im Anwendungsverzeichnis kann NICHT per Registry-Eintrag eingeschränkt werden!

  3. Werbung

  4. Ralf sagt:

    Nach dem verlinkten Artikel von Dave Landave handelt es sich um einen Fehler in einem Antivirus-Produkt, der bislang noch nicht vom Hersteller behoben wurde. Von diesem Fehler ist 7zip auch betroffen (vielleicht auch eher der Urheber, wenn das Antivirus-Produkt die 7zip-Bibliothek zum Entpacken von Archiven verwenden sollte).

    Was man Igor Pavlov (dem Entwickler von 7zip) zugute halten sollte, ist, dass er auf die Forschungen von Dave Landave eingegangen ist und neue Versionen veröffentlicht hat, die die Probleme beheben bzw. entschärfen. Und dass er Dave Landave weitere Untersuchungen ermöglicht, die zu einer Verbesserung von 7zip führen können.

    p7zip hingegen ist der Linux/Posix-Port der Kommandozeilenversion von 7zip. Von einem anderen Entwickler und leider eines der Opensource-Projekte, das heimlich still entschlummert ist und deren weitere Entwicklung eingestellt wurde. In Linux sollte man tatsächlich p7zip entfernen.

  5. Beat sagt:

    Die Sicherheitsanfälligkeit des EXE-Installers lässt sich vermeiden, indem man die MSI-Version verwendet. Diese ist unter https://www.7-zip.org/download.html verfügbar.

    Ich frage mich aber, weshalb weiterhin die EXE-Version angeboten wird. Die MSI-Version hat nur Vorteile.

    • nuub-verwirr sagt:

      und was genau macht der .msi jetzt so anders, das Ergebnis ist ja exakt (oder nur fast?) gleich?!
      und gilt sowas dann generell für exe-Installer bzw. msi – weil, so noch nie gehört?

      • Graf Zahl sagt:

        Jedes Setup-Paket, egal in welcher Form es vorliegt, enthält Dateien (und mehr) welche an die richtigen Stellen kopiert werden müssen (und mehr).

        MSI ist eine Technik von Microsoft und steht für “MicroSoft Installer”.

        EXE-Installer(-Erzeuger/Compiler) gibt es hingegen von unterschiedlichsten Anbietern, kostenlos und kostenpflichtig.
        Selbst Microsoft nutzt eine solche Technik, hat dann aber meist eine MSI ‘dahinter’, die EXE ist dann eher der Einstieg und die MSI auszuführen.

        All die anderen konkurrierenden EXE-Installer-Compiler, also Programme, mit denen man Setup-Routinen ‘herstellen’ kann, nutzen unterschiedlichste Techniken.

        Und da liegt wohl der Unterschied:
        MSI-Pakete installieren ihren Inhalt, also die zu installierenden Dateien, auf eine Art und Weise, dass diese während des Installationsvorgangs wohl nicht manipuliert werden können.

        Da es bei EXE-Installern wie erwähnt unterschiedlichste Herangehensweisen gibt, wie die Dateien Kopiert werden, kann man so nicht pauschal sagen, welches EXE-Paket es wie macht. Das müsste man analysieren.

        Es gibt jedoch wohl einige, die die Dateien während der Installation erst mal temporär entpacken um sie im Anschluss zu kopieren.
        Und bei diesem Schritt z.B. kann Schadsoftware Einfluss auf die zu kopierenden Dateien nehmen.

Schreibe einen Kommentar zu Graf Zahl Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht.