Odabrane verzije poslužitelja Xorg X11 ranjive su na privilegirane eskalacije, pogođene OpenBSD-om i CentOS-om

Sigurnost / Odabrane verzije poslužitelja Xorg X11 ranjive su na privilegirane eskalacije, pogođene OpenBSD-om i CentOS-om 1 minuta čitanja

OpenBSD projekt



Xorg je vrlo poznati X sustav prozora koji se koristi u Linuxu. To je grafičko korisničko sučelje koje koristi standard X11, što je pak komunikacijski protokol. Xorg je rastavljen iz projekta XFree86, koji više nije u aktivnom razvoju.

Privilege Escalation Exploit

Sve verzije poslužitelja Xorg X11 od 1.19.0 do 1.20.3 ranjive su na nedostatke provjere dozvola koji postoje za opcije -modulepath i -logfile. To daje privilegiranim korisnicima mogućnost pokretanja poslužitelja za pokretanje proizvoljnog koda s povišenim privilegijama.



Istraživači su otkrili da pokretanje CRON skripte s učitanim exploitom čini da ga SELinux provodi. Stvara se datoteka sigurnosne kopije crontab.old, koju u osnovi zamjenjuje modul Metasploit novom datotekom s naredbama i uputama za izvršavanje cron demona. Neuspješno iskorištavanje može rezultirati oštećenim crontabom. Xorg također mora imati SUID dozvole da bi exploit mogao raditi, što možete provjeriti iz isječka koda u nastavku.



# linux provjere
uname = cmd_exec 'uname'
ako uname = ~ / linux / i
vprint_status “Pokretanje dodatne provjere za Linux”
ako je datastore [‘ConsoleLock’] korisnik = cmd_exec “id -un”
osim ako postoje? “/ Var / run / console / # {user}”
vprint_error 'Nema zaključavanja konzole za # {korisnika}'
vratiti CheckCode :: Sigurno
kraj
vprint_good “Zaključavanje konzole za # {korisnika}”
kraj
ako je selinux_installed?
ako selinux_provodi?
vprint_error 'Selinux provodi'
vratiti CheckCode :: Sigurno
kraj
kraj
vprint_good “Selinux nije problem”
kraj

# suid provjera programa
xorg_path = cmd_exec “naredba -v Xorg”
osim ako xorg_path.include? (“Xorg”)
vprint_error 'Nije moguće pronaći izvršnu datoteku Xorg'
vratiti CheckCode :: Sigurno
kraj
vprint_good “Xorg putanja pronađena na # {xorg_path}”
osim ako je setuid? put xorg_
vprint_error 'Xorg binarni # {xorg_path} nije SUID'
vratiti CheckCode :: Sigurno
kraj
vprint_good “Xorg binarni # {xorg_path} je SUID”

Metodologija ispitivanja

Na ovom podvigu radila su četvorica istraživača -

  • Narendra Shinde - Otkriće i iskorištavanje
  • Raptor-0xdea - Modificirani exploit za cron
  • Aaron Ringo - Metasploit modul
  • Brendan Coles - Metasploit modul

Ovo je testirano na OpenBSD 6.3, 6.4 i CentOS 7 (1708). Prema napomenama o Packetstormu, CentOS sa zadanom instalacijom trebat će provjeru autentičnosti konzole za korisničke sesije.

Ovo je ozbiljna ranjivost s obzirom na opseg upotrebe Xorga. Iako za rad exploita trebaju neke unaprijed postavljene postavke, koje možda nisu prisutne u profesionalnom okruženju.

Oznake CentOS OpenBSD Xorg