Projeto OpenBSD
Xorg é um sistema de janelas X muito famoso usado no Linux. É uma interface gráfica de usuário que usa o padrão X11, que por sua vez é um protocolo de comunicação. O Xorg foi derivado do projeto XFree86, que não está mais em desenvolvimento ativo.
Exploração de escalonamento de privilégios
Todas as versões do servidor Xorg X11 de 1.19.0 a 1.20.3 são vulneráveis a falhas de verificação de permissão que existem para as opções -modulepath e -logfile. Isso dá aos usuários sem privilégios a capacidade de iniciar um servidor, de executar código arbitrário com privilégios elevados.
Os pesquisadores descobriram que rodar um script CRON com o exploit carregado faz o SELinux aplicá-lo. Um arquivo de backup crontab.old é criado, que é essencialmente substituído pelo módulo Metasploit por um novo arquivo com comandos e instruções para o cron daemon executar. A exploração com falha pode resultar em um crontab corrompido. O Xorg também precisa ter permissões SUID para que o exploit funcione, o que você pode verificar no trecho de código abaixo.
# verificação de linux
uname = cmd_exec “uname”
se uname = ~ / linux / i
vprint_status “Executando verificação adicional para Linux”
if datastore [‘ConsoleLock’] user = cmd_exec “id -un”
a menos que exista? “/ Var / run / console / # {usuário}”
vprint_error “Sem bloqueio de console para # {usuário}”
return CheckCode :: Safe
fim
vprint_good “Bloqueio de console para # {usuário}”
fim
se selinux_installed?
se selinux_enforcing?
vprint_error ‘Selinux is enforcing’
return CheckCode :: Safe
fim
fim
vprint_good “Selinux não é um problema”
fim# verificação de programa suid
xorg_path = cmd_exec “command -v Xorg”
a menos que xorg_path.include? (“Xorg”)
vprint_error “Não foi possível encontrar executável Xorg”
return CheckCode :: Safe
fim
vprint_good “Caminho Xorg encontrado em # {xorg_path}”
a menos que setuid? xorg_path
vprint_error “Xorg binary # {xorg_path} não é SUID”
return CheckCode :: Safe
fim
vprint_good “Xorg binário # {xorg_path} é SUID”
Metodologia de Teste
Esta exploração foi trabalhada por quatro pesquisadores -
- Narendra Shinde - descoberta e exploração
- Raptor-0xdea - exploit modificado para cron
- Aaron Ringo - módulo Metasploit
- Brendan Coles - módulo Metasploit
Isso foi testado no OpenBSD 6.3, 6.4 e CentOS 7 (1708). De acordo com as notas no Packetstorm, o CentOS com uma instalação padrão precisará da autenticação do console para as sessões do usuário.
Esta é uma vulnerabilidade séria dada a escala de uso do Xorg. Embora a exploração precise de algumas predefinições para funcionar, elas podem não estar presentes em um ambiente profissional.
Tag CentOS OpenBSD Xorg