Algunas versiones del servidor Xorg X11 son vulnerables a las vulnerabilidades de escalamiento de privilegios, y OpenBSD y CentOS se ven afectados

Seguridad / Algunas versiones del servidor Xorg X11 son vulnerables a las vulnerabilidades de escalamiento de privilegios, y OpenBSD y CentOS se ven afectados 1 minuto de lectura

Proyecto OpenBSD

Xorg es un sistema de ventanas X muy famoso utilizado en Linux. Es una interfaz gráfica de usuario que utiliza el estándar X11, que a su vez es un protocolo de comunicación. Xorg se bifurcó del proyecto XFree86, que ya no está en desarrollo activo.

Exploit de escalada de privilegios

Todas las versiones del servidor Xorg X11 desde la 1.19.0 hasta la 1.20.3 son vulnerables a las fallas de verificación de permisos que existen para las opciones -modulepath y -logfile. Esto brinda a los usuarios sin privilegios la capacidad de iniciar un servidor, para ejecutar código arbitrario con privilegios elevados.



Los investigadores descubrieron que ejecutar un script CRON con el exploit cargado hace que SELinux lo aplique. Se crea un archivo de respaldo crontab.old, que esencialmente es reemplazado por el módulo Metasploit con un nuevo archivo con comandos e instrucciones para que el demonio cron se ejecute. La explotación fallida puede resultar en un crontab dañado. Xorg también necesita tener permisos SUID para que el exploit funcione, lo cual puede verificar en el fragmento de código a continuación.



# comprobaciones de linux
uname = cmd_exec 'uname'
si uname = ~ / linux / i
vprint_status 'Ejecutando verificación adicional para Linux'
si el usuario del almacén de datos [‘ConsoleLock’] = cmd_exec 'id -un'
a menos que exista? '/ Var / run / console / # {user}'
vprint_error 'Sin bloqueo de consola para # {usuario}'
return CheckCode :: Seguro
fin
vprint_good 'Bloqueo de consola para # {usuario}'
fin
si selinux_installed?
si selinux_enforcing?
vprint_error 'Selinux está haciendo cumplir'
return CheckCode :: Seguro
fin
fin
vprint_good 'Selinux no es un problema'
fin

# verificación del programa suid
xorg_path = cmd_exec 'comando -v Xorg'
a menos que xorg_path.include? ('Xorg')
vprint_error 'No se pudo encontrar el ejecutable de Xorg'
return CheckCode :: Seguro
fin
vprint_good 'Se encontró la ruta de Xorg en # {xorg_path}'
a menos que sea setuid? xorg_path
vprint_error 'Xorg binary # {xorg_path} no es SUID'
return CheckCode :: Seguro
fin
vprint_good 'El número binario de Xorg {xorg_path} es SUID'

Metodología de prueba

Este exploit fue trabajado por cuatro investigadores:

  • Narendra Shinde - Descubrimiento y explotación
  • Raptor-0xdea: exploit modificado para cron
  • Aaron Ringo - módulo Metasploit
  • Brendan Coles - módulo Metasploit

Esto se probó en OpenBSD 6.3, 6.4 y CentOS 7 (1708). Según las notas sobre Packetstorm, CentOS con una instalación predeterminada necesitará autenticación de consola para las sesiones del usuario.

Esta es una vulnerabilidad seria dada la escala de uso de Xorg. Aunque el exploit necesita algunos ajustes preestablecidos para funcionar, es posible que no estén presentes en un entorno profesional.

Etiquetas CentOS OpenBSD Xorg