Certaines versions de serveur Xorg X11 sont vulnérables aux exploits d'escalade de privilèges, OpenBSD et CentOS sont affectés

Sécurité / Certaines versions de serveur Xorg X11 sont vulnérables aux exploits d'escalade de privilèges, OpenBSD et CentOS sont affectés 1 minute de lecture

Projet OpenBSD



Xorg est un système de fenêtres X très connu utilisé sous Linux. Il s’agit d’une interface utilisateur graphique qui utilise la norme X11, qui à son tour est un protocole de communication. Xorg est issu du projet XFree86, qui n'est plus en développement actif.

Exploit d'escalade de privilèges

Toutes les versions de serveur Xorg X11 de 1.19.0 à 1.20.3 sont vulnérables aux failles de vérification des autorisations qui existent pour les options -modulepath et -logfile. Cela donne aux utilisateurs non privilégiés la possibilité de démarrer un serveur, d'exécuter du code arbitraire avec des privilèges élevés.



Les chercheurs ont découvert que l'exécution d'un script CRON avec l'exploit chargé permet à SELinux de l'appliquer. Un fichier de sauvegarde crontab.old est créé, qui est essentiellement remplacé par le module Metasploit par un nouveau fichier avec des commandes et des instructions à exécuter par le démon cron. Un échec de l'exploitation peut entraîner une corruption de crontab. Xorg doit également disposer des autorisations SUID pour que l'exploit fonctionne, que vous pouvez vérifier à partir de l'extrait de code ci-dessous.



# vérifications Linux
uname = cmd_exec 'uname'
si uname = ~ / linux / i
vprint_status 'Exécution d'une vérification supplémentaire pour Linux'
if datastore [‘ConsoleLock’] user = cmd_exec “id -un”
à moins d'exister? '/ Var / run / console / # {user}'
vprint_error 'Pas de verrouillage de la console pour # {user}'
retourne CheckCode :: Safe
fin
vprint_good 'Verrou de la console pour # {utilisateur}'
fin
si selinux_installed?
si selinux_enforcing?
vprint_error «Selinux applique»
retourne CheckCode :: Safe
fin
fin
vprint_good 'Selinux n'est pas un problème'
fin

# vérification du programme suid
xorg_path = cmd_exec 'commande -v Xorg'
sauf si xorg_path.include? («Xorg»)
vprint_error 'Impossible de trouver l'exécutable Xorg'
retourne CheckCode :: Safe
fin
vprint_good 'Chemin Xorg trouvé à # {xorg_path}'
à moins que setuid? xorg_path
vprint_error 'Le binaire Xorg # {xorg_path} n'est pas SUID'
retourne CheckCode :: Safe
fin
vprint_good 'Le binaire Xorg # {xorg_path} est SUID'

Méthodologie de test

Cet exploit a été travaillé par quatre chercheurs -

  • Narendra Shinde - Découverte et exploiter
  • Raptor-0xdea - Exploit modifié pour cron
  • Aaron Ringo - Module Metasploit
  • Brendan Coles - Module Metasploit

Cela a été testé sur OpenBSD 6.3, 6.4 et CentOS 7 (1708). Selon les notes sur Packetstorm, CentOS avec une installation par défaut aura besoin d'une authentification de la console pour les sessions de l'utilisateur.

C’est une vulnérabilité sérieuse étant donné l’ampleur de l’utilisation de Xorg. Bien que l'exploit ait besoin de certains préréglages pour fonctionner, qui peuvent ne pas être présents dans un environnement professionnel.

Mots clés CentOS OpenBSD Xorg