Windows-Lücke nach 17 Jahren gefunden [Update]

Durch eine Lücke in der Verarbeitung von 16-Bit-Programmen können Anwender mit eingeschränkten Rechten an System-Rechte gelangen. Die Lücke findet sich in Windows NT 3.1 bis Windows 7. Ein Update gibt es noch nicht.

In Pocket speichern vorlesen Druckansicht 678 Kommentare lesen
Lesezeit: 3 Min.
Von
  • Daniel Bachfeld

Microsoft hat es dieser Tage nicht leicht. Nach der ungepatchten Lücke im Internet Explorer wurde nun noch eine Lücke in Windows bekannt, durch die Anwender mit eingeschränkten Rechten an System-Rechte gelangen können – und zwar vermutlich auf allen 32-Bit-Windows-Versionen von Windows NT 3.1 bis einschließlich Windows 7. Während die Schwachstelle bei Heimanwendern vermutlich nur eine kleine Rolle spielt, dürften Administratoren in Unternehmensnetzen diese Woche vermutlich ins Schwitzen kommen.

Ursache des Problems sind Fehler in der 1993 eingeführten Virtual DOS Machine (VDM) zur Unterstützung von 16-Bit-Anwendungen (Real-Mode-Anwendungen für 8086). VDM beruht auf dem Virtual 8086 Mode (VM86) der 80386-Prozessoren und fängt unter anderem Hardware-Zugriffe wie BIOS-Aufrufe ab. Der zum Google-Sicherheitsteam gehörende Tavis Ormandy hat in der Umsetzung einige Schwachstellen gefunden, durch die ein nicht-privilegiertes 16-Bit-Programm mit mehreren Tricks den zu jedem Prozess gehörenden Kernel-Stack manipulieren kann. Damit ist es möglich, eigenen Code mit Systemrechten auszuführen.

Ormandy hat zu der Lücke auch einen Exploit veröffentlicht, der unter Windows XP, Windows Server 2003 und 2008, Windows Vista und Windows 7 funktioniert. Im Test der heise-Security-Redaktion öffnete der Exploit unter Windows XP und Windows 7 eine Eingabeaufforderung im System-Kontext, also mit den höchsten Rechten. Ein Patch für die Lücke gibt es nicht, obwohl Microsoft nach Angaben von Ormandy bereits seit Mitte des vergangenen Jahres über die Lücke informiert ist. Ormandy hat sich dennoch entschlossen, die Informationen zu veröffentlichen, da seiner Meinung nach die Workarounds einfach zu realisieren sind: Man schaltet das MSDOS-Subsystem einfach ab.

Dazu muss man den Editor für die Gruppenrichtlinie starten und unter Computerkonfiguration/Administrative Vorlagen/Windows-Komponenten/Anwendungskompatibilität die Option "Zugriff auf 16-Bit-Anwendungen verhindern" aktivieren. Im Test von heise Security funktionierte der Exploit mit diesen Einstellungen unter Windows 7 Ultimate nicht mehr. Die Einstellung soll bei den meisten Anwendern keine Kompatibilitätsprobleme verursachen, sofern man eben keine 16-Bit-Anwendungen mehr verwendet.

[Update]: Die Deaktivierung der oben genannten Option ist über die Gruppenrichtlinie erst seit Windows 2003 verfügbar. Zudem haben einige Windows-Versionen keinen Editor für Gruppenrichtlinen. Alternativ kann man auch in der Registry den Schlüssel \HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\AppCompat erzeugen und dort als D-Word-Wert VDMDisallowed = 1 anlegen. Unter XP lief der Exploit anschließend nicht mehr, Automatisch funktioniert das Anlegen des Schlüssels, wenn man sich die Datei vdmdisallow.reg mit folgenden Inhalt anlegt:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\AppCompat]
"VDMDisallowed"=dword:00000001

und die Datei anschließend doppelklickt (Adminrechte vorausgesetzt)

Siehe dazu auch:

(dab)