[English]In der Anwendung 7-Zip gibt es bis zur Version 21.07 eine Schwachstelle CVE-2022-29072 (Heap-Overflow), die sich unter Windows ausnutzen lässt. Hier einige Informationen zu dieser Schwachstelle und was man tun kann. Ergänzung: Scheint ein Irrtum oder ein bewusster Hoax gewesen zu sein. Eine Privilegienausweitung, wie ursprünglich vom Finder angegeben, ist wohl nicht möglich.
Anzeige
Einige Worte zu 7-Zip
7-Zip ist ein freies und kostenloses Packprogramm, das unter den Bedingungen der LGPL lizenziert ist. Die Entwicklung erfolgt durch den russischen Softwareentwickler Igor Wiktorowitsch Pavlov, der die erste Version von 7-Zip im Jahr 1999 veröffentlichte und bis heute aktiv entwickelt (Stand Frühjahr 2021), so die Wikipedia. Das Paket bzw. seine Bibliotheken kommen in vielen Software-Produkten zum Einsatz.
Der Archivmanager unterstützt neben .zip-Archiven auch weitere unter Windows gebräuchliche Packer-Formate wie .rar, .arj oder .lzh. Im Blog-Beitrag Warnung: Auf 7-Zip verzichten hatte ich auf das Problem der Sicherheitslücken in 7-Zip hingewiesen, und einige Details offen gelegt, die den Einsatz von 7-Zip doch in Frage stellen.
Ich selbst habe das Tool in einer portablen Version bei mir auf dem Rechner – setze es aber nur sehr selten und sehr restriktiv ein. Ich will aber nicht auf das Tool gänzlich verzichten, weil ich damit z.B. direkt den Inhalt einer .iso-Datei (Abbild einer CD oder DVD) oder einer .vhd-Datei (virtuelles Laufwerk ohne mounten) anzeigen kann. Auch das Entpacken von Microsofts Update-Paketen ist mit 7-Zip schnell erledigt. Und es unterstützt die vom kostenpflichtigen WinRAR erzeugten Archive im rar-Format. Aber das Risiko, beim Entpacken eines Archivs mit schädlichen Inhalten in eine Falle zu laufen, muss einem immer bewusst sein.
Die Schwachstelle CVE-2022-29072
Ich bin bereits an Ostern über nachfolgenden Tweet auf diesen Sachverhalt gestoßen, der in diesem GitHub-Beitrag näher beschrieben wird. Inzwischen haben mich mehrere Blog-Leser bereits über diverse Kanäle auf den Sachverhalt hingewiesen (danke dafür).
Anzeige
Die Schweinebacke von Entdecker hat den Text ursprünglich auf Englisch auf GitHub veröffentlicht. Inzwischen ist der Text auf türkisch. Verwendet diese Version hier aus dem Internet-Archiv, die noch auf Englisch verfasst wurde.
7-Zip ermöglicht unter Windows bis zur Version 21.07 die Ausweitung von Rechten und die Ausführung von Befehlen, wenn eine Datei mit der Erweiterung .7z in den Bereich Hilfe>Inhalt gezogen wird. Konkret basiert die in der 7-zip-Software enthaltene Zero-Day-Schwachstelle auf einer Fehlkonfiguration der 7z.dll und einem Heap-Überlauf.
Nach der Installation der 7-zip-Software gibt es 7-zip.chm-Hilfedateien im Programmverzeichnis, deren Inhalt über die Windows-HTML-Helper-Funktion (hh.exe) ausgeführt wird. Ein Angreifer kann, dank des Heap-Überlaufs in 7zFM.exe und der Befehlsausführungsfunktion in hh.exe durch Befehlsinjektion eine Erhöhung der Berechtigungen auf Administratorberechtigungen erreichen. Dazu ist eine Datei mit der Erweiterung .7z in den Bereich Hilfe>Inhalt zu ziehen.
Der Entdecker der Schwachstelle demonstriert in einem auf Github verlinkten Video die Ausnutzung der Schwachstelle und empfiehlt die Datei 7-zip.chm zu löschen (falls es kein 7-Zip-Update gibt), um die Sicherheitslücke zu schließen. Fehlt die Hilfedatei, wird hh.exe auch nicht aufgerufen. Weiterhin empfiehlt der Entdecker der Schwachstelle, dem Programm 7-zip (bzw. den Dateien) sollte nur Lese- und Ausführungsrechte zu gewähren (also Schreibberechtigungen entziehen). Dann können die betreffenden Dateien nicht durch Angreifer ausgetauscht werden. Problem ist aber, dass bei fehlender Schreibberechtigung für alle Benutzer die Möglichkeit, ein Update vorzunehmen, entfällt.
Ergänzung: Auf Twitter gibt es noch eine längliche Diskussion zur Schwachstelle, die keine Schwachstelle ist. Wie es ausschaut, ist keine Privilegien-Erhöhung über diesen Angriffsweg möglich. An der ganzen Sache ist also – nach bisheriger Kenntnis und gemäß der Beschreibung des Finders – nichts dran.
Ähnliche Artikel:
Warnung: Auf 7-Zip verzichten
7-ZIP Version 18.05 veröffentlicht
F-Secure Sicherheitsupdates für 7-Zip-Schwachstellen
Anzeige
Ist das nicht eher ein Sicherheits-Problem von Windows selbst mit .chm & hh.exe?
Eigentlich schon – ist auch die Argumentation des Entwicklers. Was mich aber irgendwie wundert: In Windows 10 wird aktuell kein .hlp-Format mehr unterstützt (und eigentlich sollte auch .chm aus Sicherheitsgründen irgendwann entfallen – habe ich jedenfalls noch im Hinterkopf, MS geht auf HTML-Hilfeseiten) – der Finder der Schwachstelle demonstriert aber die Anwendung unter Windows 10. Irgend etwas läuft mit der 7z.dll da schief.
Mein 20H2 unterstützt .chm mit dem Microsoft Viewer. Aber ich verwende Kchm.
AutoHotkey.chm unter Windows 11 gestartet. Geht ganz normal im CHM-Viewer von MS auf. Info dazu lautet: "HTML Help Control Version 10.0 – Copyright 1995 – 2002 Microsoft Corp."
Warum sollte Microsoft auch eine alten Zopf abschneiden? Einzig .HLP-Dateien wurden irgendwann mal gekappt, als man zwangsweise Windows als GUI aufsetzte und nicht als win.com als Option aus DOS heraus als Option beließ, es klappt ja noch bis einschließlich 98SE. 🥸
War mein Fehler – .hlp-Format wird nicht mehr unterstützt – .chm sollte auch rausfallen, ist wohl aber immer noch funktional.
@Günter_Born
Vielleicht können Sie Microsoft informieren, dass wir einen Fix für den nächsten Patch-Day bekommen. Die .chm Lücke gehört dicht gemacht, ist kein reines 7-zip Problem, so wie ich das sehe…
Wie wird die Entwicklung von 7-zip eigentlich finanziert?
Reines Hobby? Woher bekommt der Entwickler Geld zum Leben?
Das ist ein Ein-Mann-OpenSource-Project. Kann mir vorstellen, dass gewisse Bereiche wie Homepage und Download-Traffic, sowie Zertifikate gesponsort sind. War ja auch mal ein paar Jahre ruhig um 7-Zip.
Ich denke es hat als GPL / Hobby Projekt begonnen.
7Zip hat aktuell einen etwas größeren Verbreitungsgrad. So finde ich die Dateien 7Z.dll, 7za.exe oder 7Z.exe bei Allplan (CAD Anwendung), HP Support Framework, Atmel Studio (IDE), Visual Studio und WinMerge.
Vor daher könnte ich mir schon den ein oder anderen Kooperationsvertrag vorstellen.
die verlinkte Empfehlung ist gut und schön. Noch besser wärs, sie wäre in Englisch und nicht Türkisch.
Die Google-Übersetzung ist auch etwas wackelig, da er viel Englisch entlehnt, aber hier liest es sich eher, als dass die seit 2002(?) nicht mehr gepflegte Hilfefunktion sicher für einigen Quatsch missbrauchen lässt und dann entsprechend "Prozesse zurückgibt"?!?
Nach langen Fuzzing-Prozessen mit WinAFL entdeckte ich, dass es einen Heap-Überlauf auf FzGM.exe gab, aber es machte keinen Sinn, da nach Einem Heap-Überlauf über gehenür Benutzer. Aus diesem Grund habe ich CreateRemoteThread nicht used, da ich die API aufrufen musste und eine chm-Datei benötigte, um diese API auslösen zu können.
–> Als ich den Quellcode untersuchte, bemerkte ich, dass es insbesondere beim Aufruf der Windows-API an zwei Stellen zu fehlerhaften Operationen cam, was zu einem direkten Autorisierungsproblem ausgeführt wurde. <–
Dieser Punkt meiner Entdeckung erstellt einen untergeordneten Prozess unter FzGM.exe, wie im Bild unten zu sehen IST. ist dieser Prozess hh.
Da hat mich diese Schweinebacke astrein ausgetrickst – vor ca. 40 Minuten hat er eine türkische Fassung eingestellt (oder das Konto wurde kompromittiert). Beachtet meine Ergänzung im obigen Text, wo ich die englische Fassung eingestellt habe. Hier der betreffende Auszug, falls die Kopie im Internet Archiv gelöscht wird.
CVE-2022-29072
7-Zip through 21.07 on Windows allows privilege escalation and command execution when a file with the .7z extension is dragged to the Help>Contents area.
The zero-day included in 7-zip software is based on misconfiguration of 7z.dll and heap overflow. After the installation of 7-zip software, the help file in the HELP > contents content works through the Windows HTML Helper file, but after the command injection, a child process appeared under the 7zFM.exe process,
which is seen after the command injection, which is quite interesting, after this situation, 7-zip with WinAFL The fuzzing process was carried out. Thanks to the overflow vulnerability and wrong authorization based on the heap, it was noticed that when the process injection technique was applied (in memory) by using the powers of the 7z.dll file and the command prompt was called again, it was authorized on cmd.exe with the administrator mode. In the payload developed after this process, the psexec.exe file was used as raw;
NT AUTHORITY\SYSTEM privilege has been accessed thanks to the command "psexec -s cmd.exe -nobanner".
At this stage, 7-zip stated that the vulnerability was caused by hh.exe, but they were told that if there was a command injection from hh.exe, a child process should be created under hh.exe, so especially the heap-overflow side of this vulnerability will not be shared with the community.
To look at the discovery phase of the vulnerability;
As it is known, Microsoft HELPER ie hh.exe file "html help. full name microsoft html help executable. Program that opens help files with the chm extension." has been defined as. Many operations such as XXE, Command Execution are performed through the hh.exe file. It is possible to see vulnerabilities such as XXE or command execution in every program that uses the hh.exe interface. This issue came to my mind after the discovery of the XXE vulnerability detected by WinRAR. (https://www.exploit-db.com/exploits/47526) Although the developers of 7-zip say that Microsoft should fix the command execution authority obtained from hh.exe at this point, it has been observed that at the end of the day, thanks to the heap overflow in 7zFM.exe and the command execution feature in hh.exe, privilege elevation is provided in the administrator mode.
Bin beim Überlegen, radikal zu sein und diese .chm generell zu verbieten mittels GPO.
Falscher Denkansatz meinerseits?
https://docs.microsoft.com/en-us/previous-versions/windows/desktop/htmlhelp/restrict-potentially-unsafe-html-help-functions-to-specified-folders
Im Firmenumfeld würde ich es sogar eher über "Richtlinien für die Softwareeinschränkung" (Software Restriction Policies) lösen und alle '*.chm' Dateien sperren.
Oder man kann z.B. mit "Applocker" direkt die 'hh.exe' ausschließen.
Auf Sourceforge ist der Programmierer auf jeden Fall noch aktiv. In dem Thread hier wird auf die Lücke eingegangen:
https://sourceforge.net/p/sevenzip/discussion/45797/thread/65ce9ab4cb/
Er schreibt aber auch, das er keine weiteren Infos zu dem Problem bekommen hat und bittet um deren Weitergabe. Im Ganzen ist es wohl aber wie schon weiter oben bemerkt worden ist, ein Problem von Microsoft und deren Handling von chm-Dateien. Jetzt kann er IMHO a) auf Microsofts Patch dazu warten oder b) sein Hilfesystem neu schreiben… :-/
So mit minimaler Information schient das doch Blödsinn. Die hh.exe sollte keine helper-applications (außer html gedöns) anfordern, sondern unpassenden Formate einfach komplett ablehnen. Das 7zip auf dem Weg vllt. da was falsch implementiert hat, nun ja, sollte egal sein. Das Spiel kann man ggf. mit jedem anderen Programm auch treiben, das sich als helper für Extension xy anbietet. Irgendwas findet sich da immer. 7zip hat da nur das Glück weit verbreitet zu sein.
Wer benötigt diese chm Quatsch eigentlich? Ist doch eh nur nen Format um sich (und andere) zu ärgern.
der CVE Status hat sich aber geändert steht jetzt auf DISPUTED https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-29072
Kagan Capar wird wohl auch von einem Cert Vulnerability Analyst nicht ernst genommen…
https://twitter.com/wdormann/status/1516217431437500419
ist jetzt an der Sache überhaupt was dran?
warten wir es ab, ich habe die Diskussion inzwischen mitbekommen und auch das Video von Will Dormann gesehen. Der Entdecker will demnächst aber gegenüber Ormando Travis nachlegen. Aktuell ist er laut Eigenaussage in Vorbereitungen für seine Hochzeit. Mit meiner portablen Fassung kann ich das Ganze auch nicht nachvollziehen.
Es gibt auch noch diese Diskussion
https://sourceforge.net/p/sevenzip/bugs/2337/
In der Sourceforge-Diskussion hat der Entdecker ganz am Anfang einen simplen HTML-Code gepostet, der eine Powershell öffnet. Wenn man den Code als HTML-Datei abspeichert und per Drag & Drop in das Hilfefenster zieht, öffnet sich eine CMD mit Powershell, allerdings nicht mit System-Rechten und auch nicht als Sub-Prozess von 7-Zip. Auch kommt vorher noch ein Warnhinweis:
"Ein ActiveX-Steuerelement dieser Seite ist eventuell in Wechselwirkung mit anderen Elementen dieser Seite nicht sicher. Möchten Sie dies zulassen?"
Das verstehen Laien aber eher nicht und würden die Warnung im Zweifel vermutlich genervt wegklicken.
Das klappt übrigens generell mit dem Hilfe-Fenster, auch bei anderen Programmen. Es ist also wohl nicht nur ein 7-Zip-Problem sondern wirklich ein Problem der Legacy-Windows-Hilfe.
Den im Video gezeigten POC wird man wohl erst nachvollziehen können, wenn der Source-Code veröffentlicht wurde. Das kann aber wohl noch was dauern, der Entdecker möchte seinen Fund wohl zu Geld machen. Zumindest lässt sich das aus der Diskussion mit dem 7-Zip-Entwickler schließen.
"Das klappt übrigens generell mit dem Hilfe-Fenster, auch bei anderen Programmen. Es ist also wohl nicht nur ein 7-Zip-Problem sondern wirklich ein Problem der Legacy-Windows-Hilfe."
So ist es!
Auch in Win10H2 und neuer, es reicht eine x-beliebige .chm zu öffnen und per Drag&Drop die .html mit jscript auszuführen.
Es bleibt mit bei USER rechten
Es muss per Drag&Drp gemacht werden
Es muss eine ActiveX-Warnung weggeklickt werden
Leider wird dadurch anderen Manschen das leben schwer gemacht wenn Software Teile enthält die auf diese CVEs zeigen.