Ausgewählte Xorg X11-Serverversionen sind anfällig für die Eskalation von Exploits, OpenBSD und CentOS

Sicherheit /. Ausgewählte Xorg X11-Serverversionen sind anfällig für die Eskalation von Exploits, OpenBSD und CentOS 1 Minute gelesen

OpenBSD-Projekt



Xorg ist ein sehr bekanntes X-Fenstersystem, das unter Linux verwendet wird. Es handelt sich um eine grafische Benutzeroberfläche, die den X11-Standard verwendet, der wiederum ein Kommunikationsprotokoll ist. Xorg wurde aus dem XFree86-Projekt gegabelt, das sich nicht mehr in der aktiven Entwicklung befindet.

Exploit zur Eskalation von Berechtigungen

Alle Xorg X11-Serverversionen von 1.19.0 bis 1.20.3 sind anfällig für Fehler bei der Berechtigungsprüfung, die für die Optionen -modulepath und -logfile bestehen. Dies gibt nicht privilegierten Benutzern die Möglichkeit, einen Server zu starten und beliebigen Code mit erhöhten Berechtigungen auszuführen.



Die Forscher fanden heraus, dass SELinux das Ausführen eines CRON-Skripts mit dem geladenen Exploit erzwingt. Es wird eine crontab.old-Sicherungsdatei erstellt, die im Wesentlichen durch das Metasploit-Modul durch eine neue Datei mit Befehlen und Anweisungen für die Ausführung des cron-Dämons ersetzt wird. Eine fehlgeschlagene Ausnutzung kann zu einer beschädigten Crontab führen. Xorg benötigt außerdem SUID-Berechtigungen, damit der Exploit funktioniert. Dies können Sie anhand des folgenden Code-Snippets überprüfen.



# Linux-Checks
uname = cmd_exec 'uname'
wenn uname = ~ / linux / i
vprint_status 'Zusätzliche Prüfung für Linux ausführen'
if datastore [‘ConsoleLock’] user = cmd_exec “id -un”
sofern nicht vorhanden? '/ Var / run / console / # {user}'
vprint_error 'Keine Konsolensperre für # {user}'
return CheckCode :: Safe
Ende
vprint_good 'Konsolensperre für # {Benutzer}'
Ende
wenn selinux_installed?
wenn selinux_enforcing?
vprint_error 'Selinux erzwingt'
return CheckCode :: Safe
Ende
Ende
vprint_good 'Selinux ist kein Problem'
Ende

# suid Programmprüfung
xorg_path = cmd_exec 'Befehl -v Xorg'
es sei denn, xorg_path.include? ('Xorg')
vprint_error 'Xorg ausführbare Datei konnte nicht gefunden werden'
return CheckCode :: Safe
Ende
vprint_good 'Xorg-Pfad gefunden unter # {xorg_path}'
es sei denn setuid? xorg_path
vprint_error 'Xorg-Binärdatei # {xorg_path} ist nicht SUID'
return CheckCode :: Safe
Ende
vprint_good 'Xorg-Binärdatei # {xorg_path} ist SUID'

Testmethodik

An diesem Exploit haben vier Forscher gearbeitet -

  • Narendra Shinde - Entdeckung und Ausbeutung
  • Raptor-0xdea - Modifizierter Exploit für Cron
  • Aaron Ringo - Metasploit-Modul
  • Brendan Coles - Metasploit-Modul

Dies wurde unter OpenBSD 6.3, 6.4 und CentOS 7 (1708) getestet. Gemäß den Hinweisen zu Packetstorm benötigt CentOS mit einer Standardinstallation eine Konsolenauthentifizierung für die Sitzungen des Benutzers.

Dies ist angesichts des Umfangs der Nutzung von Xorg eine schwerwiegende Sicherheitsanfälligkeit. Obwohl der Exploit einige Voreinstellungen benötigt, um zu funktionieren, sind sie in einem professionellen Umfeld möglicherweise nicht vorhanden.

Stichworte CentOS OpenBSD Xorg