O vulnerabilitate a fost găsită în systemd care este deja descrisă în (CVE-2019-6454), ce permite blocarea procesului de inițializare a controlului (PID1) când trimiteți un mesaj special creat unui utilizator neprivilegiat prin intermediul D-Bus.
L De asemenea, dezvoltatorii Red Hat nu exclud posibilitatea utilizării vulnerabilității pentru a organiza executarea codului cu privilegii de root., dar posibilitatea finală a unui astfel de atac nu a fost încă stabilită.
Despre systemd
Pentru cei care nu cunosc Systemd Pot să vă spun asta acesta este un sistem de inițializare Linux și un manager de servicii care include funcții precum pornirea demonului la cerere, întreținerea automată și a punctului de montare, suport instantaneu și urmărirea proceselor utilizând grupuri de control Linux.
systemd oferă un daemon de registry și alte instrumente și utilitare pentru a vă ajuta cu sarcinile comune de administrare a sistemului. Lennart Poettering și Kay Sievers au scris SystemD, inspirat de MacOS launchd și Upstart, cu scopul de a crea un sistem modern și dinamic.
În special, systemd oferă capacități de paralelizare agresivă și logică de control al serviciului bazată pe dependență, permițând serviciilor să înceapă în paralel și conducând la timpi de pornire mai rapizi. Aceste două aspecte au fost prezente în Upstart, dar îmbunătățite de systemd.
Systemd este sistemul de boot implicit pentru distribuțiile Linux principale, dar este compatibil înapoi cu scripturile de pornire SysV.
SysVinit este un sistem de inițializare care precede systemd și folosește o abordare simplificată pentru a porni serviciul. Systemd nu doar gestionează inițializarea sistemului, ci oferă și alternative la alte utilitare cunoscute, cum ar fi cron și syslog.
Despre noua vulnerabilitate systemd
Prin manipularea dimensiunii mesajului trimis prin D-Bus, un atacator poate muta indicatorul dincolo de limitele de memorie alocate stivei, ocolind protecția „stack guard-page”, care se bazează pe înlocuirea unei pagini de memorie la marginea care apelează o excepție (defecțiune de pagină).
Atacul de succes este demonstrat pe Ubuntu 18.10 cu systemd 239 și pe CentOS 7.6 cu systemd 219.
Ca soluție, compilarea poate fi utilizată în GCC cu opțiunea „-fstack-clash-protection”, care este utilizată în mod implicit în Fedora 28 și 29.
Trebuie remarcat faptul că, în 2014, autorul bibliotecii de sistem MUSL a evidențiat printre principalele probleme arhitecturale sistemul de gestionare a PID1 cu inflație excesivă și a pus la îndoială fezabilitatea implementării unui controler de nivel PID1 API pentru Link to the Bus, deoarece este un vector serios pentru atacă și poate afecta negativ fiabilitatea întregului sistem
Potrivit unui cercetător în securitate care a dezvăluit o vulnerabilitate, o schimbare a indicatorului stivei este posibilă numai pentru paginile de memorie neutilizate (neatribuit), care nu permite organizarea executării codului în contextul procesului PID1, dar permite unui atacator să inițieze blocarea PID1 cu o tranziție ulterioară a nucleului Linux la starea de panică (în cazul unui controler PID 1 eșec, întregul sistem se blochează).
În systemd, este instalat un handler de semnal care încearcă să capteze defecțiunile procesului PID1 (eroare de segmentare) și pornește shell-ul pentru recuperare.
Dar din moment ce paginile de memorie neduplicate (nealocate) sunt apelate în timpul atacului, nucleul nu poate apela acest handler de semnal și doar termină procesul cu PID 1, ceea ce la rândul său face Este imposibil să continuați să lucrați și să intrați în starea „panică”, deci este necesară o repornire a sistemului.
Există deja o soluție la problemă
Ca orice problemă de securitate deja descrisă și raportată, publicarea ei nu poate fi făcută până când problema nu a fost rezolvată și actualizările patch-urilor de vulnerabilitate pentru SUSE / openSUSE, Fedora au fost deja lansate, de asemenea pentru Ubuntu și parțial pentru Debian (Numai pentru Debian Stretch).
Deși problema rămâne necorectată în RHEL.