Security Advisory: VMWare Lücken erlauben Berechtigungsausweitung

Kritische Schwachstellen in VMWare erlauben es Benutzern mit lokalen Rechten auf einer virtuellen Maschine ihre Berechtigungen auf Vollzugriff für die Virtualisierungsplattform auszuweiten.

Eine kritische Schwachstellen in VMware erlauben es Benutzern mit lokalen Admin-Rechten auf einer virtuellen Maschine die über einen USB Controller verfügt ihre Berechtigungen auszuweiten.  Die Schwachstelle im XHCI USB Controller (use-after-free vulnerability CVE-2020-4004) wird dabei dazu genutzt, über die Schwachstelle in VMX (elevation-of-privilege vulnerability CVE-2020-4005), dem Hauptprozess der VM auf dem Host, volle Rechte auf dem Host zu erlangen.

Betroffene Produkte

  • VMware ESXi
  • VMware Workstation Pro / Player (Workstation)
  • VMware Fusion Pro / Fusion (Fusion)
  • VMware Cloud Foundation

Empfohlene Behandlung

Wir empfehlen initial mittels untenstehenden Scripts zu prüfen, ob dringender Handlungsbedarf besteht. Falls kein dringender Handlungsbedarf besteht, sollten die Patches im regulären Zyklus eingespielt werden. Dringlichkeit ist gegeben, wenn in der Ausgabe des Scripts virtuelle Maschinen mit USB Controller aufgeführt sind.
Als zweiten Schritt sollte man prüfen, ob diese USB Controller wirklich benötigt werden. Ist dies nicht der Fall, können diese von den Maschinen entfernt werden (evtl. Neustart der Maschine nötig). Dadurch wird das Ausnutzen der Schachstelle verhindert. Werden USB Controller benötigt, empfehlen wir die Patches baldmöglichst einzuspielen.

Test-Script

$vcenter = "DNS-NAME-UMGEBUNG"
Connect-VIServer $vcenter -Credential (Get-Credential)

# unwanted virtual hardware
$unwantedHardware = "VirtualUSBController"

# Templates ausschliessen
$FullVM = Get-View -ViewType VirtualMachine | Where-Object {-not $_.Config.Template}

foreach ($vmguest in $FullVM) {
  $vmguest.Config.Hardware.Device | `
  Where-Object {$_.GetType().Name -match $unwantedHardware} | `
  Foreach-Object {
      New-Object -TypeName PSObject -Property @{
         Name = $vmguest.name 
         Label = $_.DeviceInfo.Label
      }
  }
}

<# Beispiel Ausgabe:
Name                Label
----                -----
vServer1            USB controller
vServer2            USB controller
#>

Links

 

Portrait Lukas Studer

Autor dieses Beitrags: Lukas Studer

Menschen sind der wichtigste Faktor, auch in der Informations-Sicherheit. Gute Technik ist nötig, um uns zu unterstützen. Entscheiden muss aber jeder selbst. Daher ist eine kontinuierliche Weiterbildung aller Mitarbeitenden enorm wichtig.