Gamer aufgepasst: Zero-Day im Steam-Client betrifft alle Windows-Benutzer

Ein "Elevation-of-Privilege"-Fehler erlaubt es Angreifern, jedes beliebige Programm auf einer Zielmaschine mit hohen Privilegien auszuführen.

Ein Forscher hat eine Zero-Day-Schwachstelle fallen gelassen, die den Steam-Spielclient für Windows betrifft, nachdem Valve sagte, dass er sie nicht beheben würde. Valve veröffentlichte dann einen Patch, von dem der gleiche Forscher sagte, dass er umgangen werden könne.

Der Fehler ist eine Privilegien-Eskalations-Schwachstelle, die es einem Angreifer ermöglichen kann, ein beliebiges Programm mit den höchstmöglichen Rechten auf jedem Windows-Computer mit installiertem Steam zu starten, so der unabhängige Forscher Wassili Kravets (alias Felix).

Angesichts der Tatsache, dass Steam nach eigenen Angaben weltweit mehr als eine Milliarde registrierte Benutzer hat (und 90 Millionen aktive Benutzer, die sich für Spiele wie Assassin's Creed, Grand Theft Auto V und Warhammer anmelden), ist die Angriffsfläche potenziell massiv. Dennoch stellte der Eigentümer von Steam, Valve, fest, dass der Fehler "nicht anwendbar" sei, nachdem Kravets ihn über die HackerOne-Bug-Bounty-Plattform eingereicht hatte.

Die Schwachstelle besteht im Steam-Client-Service, der auf Windows-Computern mit Systemprivilegien läuft. Der Forscher fand heraus, dass es möglich ist, symbolische Links (d.h. Symlinks, die als Verknüpfungen zwischen einer Datei oder einem Verzeichnis zu einer anderen dienen) zu verwenden, um den Computer dazu zu bringen, einen Dienst oder eine ausführbare Datei mit vollen Rechten zu starten.

Zuerst entdeckte Kravets, dass der Steam-Dienst von jedem gestartet und gestoppt werden kann, der den Computer benutzt (d.h. von Personen mit "Benutzer"-Privilegien) - und wenn das passiert, erhält der Benutzer eine Liste der Unterschlüssel unter dem Hauptregistrierungsschlüssel "HKLM\Software\Wow6432Node\Valve\Steam\Apps".

"Hier habe ich festgestellt, dass HKLM\SOFTWARE\Wow6432Node\Valve\Steam explizit 'volle Kontrolle' über die Gruppe 'Benutzer' hat, und diese Berechtigungen erben für alle Unterschlüssel und deren Unterschlüssel", erklärte Kravets in einem kürzlich erschienenen Artikel. Er wollte dann sehen, ob es möglich ist, die Kontrolle über einen Unterschlüssel unter HKLM\Software\Wow6432Node\Valve\Steam\Apps zu übernehmen, der eingeschränkte Berechtigungen bietet, einen Symlink zu verwenden, um auf einen sicheren Registrierungsschlüssel mit vollen Berechtigungen zu zeigen, und dann den Dienst neu zu starten, um Zugriff auf den sicheren Registrierungsschlüssel zu erhalten.

"Ich habe einen Link von HKLM\SOFTWARE\Wow6432Node\Valve\Steam\Apps\test zu HKLM\SOFTWARE\test2 erstellt und den Dienst neu gestartet", sagte er - und er fand heraus, dass dies in der Tat für alle Benutzer vollen Lese-/Schreibzugriff auf den Schlüssel zurückgibt.

"Jetzt haben wir also ein Primitiv, mit dem wir die Kontrolle über fast jeden Schlüssel in der Registrierung übernehmen können, und es ist einfach, dies in eine vollständige Eskalation der Privilegien umzuwandeln", erklärte er. "Ich wähle den Schlüssel HKLM\SYSTEM\ControlSet001\Services\msiserver, der dem Dienst Windows Installer entspricht.

Mit dem gleichen Verfahren stellte er fest, dass er Windows Installer mit administrativen Rechten und Installationscode ausführen konnte. Das Bild, das dabei entsteht, ist also ein Exploit-Vektor, der es erlaubt, jede beliebige ausführbare Datei mit den höchstmöglichen Rechten auf jedem Windows-Computer mit installiertem Steam auszuführen.

"Nach der Übernahme der Kontrolle ist es nur notwendig, den ImagePath-Wert des HKLM\SYSTEM\ControlSet001\Services\msiserver-Schlüssels zu ändern und den 'Windows Installer'-Dienst zu starten. Das Programm von ImagePath wird als NT AUTHORITY\SYSTEM gestartet", erklärte Kravets.

Ein anderer unabhängiger Forscher, Matt Nelson (alias enigma0x3), entwickelte einen Proof-of-Concept (PoC) für den Fehler, den er auf Github veröffentlichte. Er zeigt, wie man den Fehler dazu benutzt, eine Windows-Eingabeaufforderung mit Administratorrechten zu starten.

Kravets reichte am 15. Juni einen Fehlerbericht ein, der am 16. Juni abgelehnt wurde, weil der Fehler "Angriffe ermöglicht, die die Fähigkeit erfordern, Dateien an beliebigen Stellen im Dateisystem des Benutzers abzulegen". Nachdem er dies bestritten hatte, wurde der Bericht wieder geöffnet - und dann am 20. Juli aus demselben Grund wieder geschlossen, zusammen mit einem Hinweis, dass "Angriffe... physischen Zugang zum Gerät des Benutzers erfordern".

Obwohl HackerOne Kravets sagte, dass es ihm nicht erlaubt sei, die Details des Fehlers öffentlich zu veröffentlichen, tat er es trotzdem 45 Tage nach der ersten Offenlegung. Seitdem wurde der HackerOne-Bericht wieder geöffnet, und Steam hat den Client aktualisiert, um einen "Ausnutzungsgrad der Privilegieneskalation durch symbolische Links in der Windows-Registrierung" zu beheben. Kravets sagte jedoch, ein anderer Forscher habe gezeigt, dass die Lösung umgangen werden könne.

Was die Herabsetzung des Schweregrades des Fehlers durch Valve betrifft, so sagte Kravets, dass Software geschrieben werden könnte, um das Problem auszunutzen, was die Gefahr des Fehlers erheblich vergrößern würde. "Tatsächlich erlaubt es Steam, hohe Privilegien für jedes Programm zu gewähren, das man ausführt", sagte er.

Er fügte hinzu: "Es ist ziemlich ironisch, dass ein Raketenwerfer, der eigentlich dazu bestimmt ist, Programme von Drittanbietern auf Ihrem Computer auszuführen, diesen erlaubt, stillschweigend ein Maximum an Privilegien zu erhalten. Sind Sie sicher, dass sich ein kostenloses Spiel, das von einem unbekannten Entwickler aus Müll hergestellt wurde, ehrlich verhalten wird? Glauben Sie, dass Sie für einen 90-prozentigen Preisnachlass keinen versteckten Minenarbeiter bekommen?... Die hohen Rechte bösartiger Programme können die Risiken erheblich erhöhen - Programme könnten Antivirenprogramme deaktivieren, tiefe und dunkle Orte nutzen, um fast jede Datei eines beliebigen Benutzers zu verstecken und zu verändern, ja sogar private Daten stehlen."

Im Gespräch mit Threatpost bemerkte Kravets: "Die Verwundbarkeit erfordert lokalen Zugang, nicht physischen. Jedes Programm, das Sie auf Ihrem Computer ausführen, hat lokalen Zugriff. Also, ja - jedes bösartige Programm könnte Ihren Computer über Steam übernehmen."

Darüber hinaus kann der Fehler mit einem Remote-Code-Ausführungsfehler (RCE) verkettet werden.

"Jede RCE-Schwachstelle kann mit der von mir beschriebenen kombiniert werden", sagte er. "Der Angreifer erhält lokalen Zugriff durch das RCE, dann erhält er SYSTEM-Privilegien durch Erhöhung der Privilegien. Vollständig kompromittierter Computer in zwei Schritten."

Er fügte hinzu: "Ein sehr interessanter Angriffsvektor sind Online-Spiele. Jede Remote-Code-Ausführung im Spiel und in Steam [wird] SYSTEM-Privilegien bieten. Übrigens hatte Counter Strike (von Valve) vor einiger Zeit ein RCE".

Valve hat nicht sofort eine Bitte um einen Kommentar zu dieser Geschichte zurückgeschickt. HackerOne sagte, dass er die Behauptungen von Kravets prüfe, aber zu diesem Zeitpunkt keinen Kommentar abgeben würde.

Anzeige

Anzeige