O vulnerabilitate a fost identificată în GDM

Un cercetător de securitate de către GitHub a făcut-o cunoscută recent ați identificat o vulnerabilitate (CVE-2020-16125) în GNOME Display Manager (GDM), care este responsabil pentru afișarea ecranului de conectare.

Combinat cu o altă vulnerabilitate în serviciul de urmărire a conturilor (conturi-daemon), problema permite codului să ruleze ca root.  Vulnerabilitatea este asociată cu lansarea incorectă a utilitarului de configurare inițială, dacă este imposibil să accesați serviciul demon de cont prin DBus.

Despre vulnerabilitate

Un utilizator neprivilegiat poate bloca procesul de conturi-daemon sau închide, ce va crea condițiile pentru ca utilitarul gnome-initial-setup să fie rulat de la GDM, prin care un nou utilizator se poate înregistra ca membru al grupului sudo, adică are capacitatea de a rula programe ca root.

în mod normal, GDM apelează gnome-initial-setup pentru a seta primul utilizator dacă nu există conturi în sistem. Verificarea existenței conturilor se face prin contactarea conturilor-daemon. Dacă procesul specificat eșuează, GDM presupune că lipsesc conturile și începe procesul de configurare inițială.

Cercetătorul a identificat două modalități de a întrerupe procesul de conturi-demoni- Prima (CVE-2020-16126) se datorează resetării incorecte a privilegiilor și a doua eroare (CVE-2020-16127) în timpul procesării unui fișier „.pam_environment”.

În plus, o altă vulnerabilitate a fost găsită în daemon-accounts (CVE-2018-14036) cauzate de verificări incorecte ale căii de fișiere și permițând citirea conținutului fișierelor arbitrare pe sistem.

Vulnerabilitățile din conturile-daemon sunt cauzate de modificările făcute de dezvoltatorii Ubuntu și nu apar în codul principal conturi-daemon al proiectului FreeDesktop și pachetul Debian.

Problema CVE-2020-16127 este prezentă într-un patch adăugat în Ubuntu care implementează funcția is_in_pam_environment, care citește conținutul fișierului .pam_environment din directorul de start al utilizatorului. Dacă puneți o legătură simbolică la / dev / zero în locul acestui fișier, procesul demonului de cont se blochează pe operații de citire infinite și nu mai răspunde la solicitări prin DBus.

Este neobișnuit ca o vulnerabilitate într-un sistem de operare modern să fie atât de ușor de exploatat. În unele ocazii, am scris mii de linii de cod pentru a exploata o vulnerabilitate. 

Majoritatea exploatărilor moderne implică trucuri complicate, cum ar fi utilizarea unei vulnerabilități de corupere a memoriei pentru a falsifica obiecte false din heap sau înlocuirea unui fișier cu un link simbolic cu precizie de microsecundă pentru a exploata o vulnerabilitate TOCTOU. 

Așadar, în aceste zile este relativ rar să găsești o vulnerabilitate care să nu necesite abilități de codare pentru a fi exploatată. De asemenea, cred că vulnerabilitatea este ușor de înțeles, chiar dacă nu aveți cunoștințe prealabile despre modul în care funcționează Ubuntu sau experiență în cercetarea securității.

Vulnerabilitatea CVE-2020-16126 este cauzată de un alt patch care resetează privilegiile utilizatorului curent în timp ce procesează unele apeluri DBus (de exemplu, org.freedesktop.Accounts.User.SetLanguage).

Procesul demonului de cont rulează în mod normal ca root, ceea ce împiedică un utilizator normal să trimită semnale.

Dar, datorită patch-ului adăugat, privilegiile de proces pot fi resetate iar utilizatorul poate încheia acest proces prin trimiterea unui semnal. Pentru a efectua un atac, pur și simplu creați condițiile pentru a elimina privilegiile (RUID) și trimiteți un semnal SIGSEGV sau SIGSTOP la procesul demonului de cont.

Utilizatorul încheie sesiunea grafică și merge la consola de text (Ctrl-Alt-F1).
După încheierea sesiunii grafice, GDM încearcă să afișeze ecranul de conectare, dar se blochează atunci când încearcă să obțină un răspuns de la daemon-ul de conturi.

Semnalele SIGSEGV și SIGCONT sunt trimise de pe consolă la procesul demonului de cont, provocând blocarea acestuia.

De asemenea, puteți trimite semnale înainte de a ieși din sesiunea grafică, dar trebuie să o faceți cu o întârziere pentru a avea timp să finalizați sesiunea și înainte ca semnalul să fie trimis, GDM a avut timp să înceapă.

Solicitarea către demonul de conturi din GDM eșuează și GDM apelează utilitarul gnome-initial-setup, în a cărui interfață este suficient să creați un cont nou.

Vulnerabilitatea este remediată în GNOME 3.36.2 și 3.38.2. Exploatarea vulnerabilității a fost confirmată în Ubuntu și în derivatele sale.

Fuente: https://securitylab.github.com


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: AB Internet Networks 2008 SL
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.