Ranjivost u Linux podsustavu pidfd koja omogućava čitanje datoteka nedostupnih korisniku

U Linux kernelu je otkrivena peta (1, 2, 3) kritična ranjivost u posljednje dvije tjedne koja omogućava korisnicima da podignu svoje privilegije u sustavu. Objavljena su dva funkcionalna eksploita: sshkeysign_pwn omogućava neprivilegiranom korisniku da pročita sadržaj privatnih host SSH ključeva /etc/ssh/ssh_host_*_key, dok chage_pwn omogućava čitanje sadržaja datoteke /etc/shadow koja sadrži heševe korisničkih lozinki.

Informacije o ranjivosti nisu bile planirane za objavljivanje, ali je jedan od istražitelja sigurnosti na osnovu predloženog patchea za kernel mogao odrediti suštinu ranjivosti koja omogućava čitanje datoteka dostupnih samo korisniku root, kao što je /etc/shadow. U dodatku u kernelu ispravljena je logika korištenja funkcije get_dumpable() u ptrace za određivanje razine pristupa u funkciji ptrace_may_access().

Sama ranjivost uzrokovana je stanjem utrke, što dovodi do mogućnosti neprivilegiranog pristupa do deskriptor datoteke pidfd nakon pristupa datoteci iz suid root procesa. U trenutku između otvaranja datoteke i resetiranja privilegija u suid programu (na primjer, putem funkcije setreuid), dolazi do situacije gdje aplikacija koja je pokrenula suid root program može putem deskriptora pidfd pristupiti otvorenoj datoteci u suid programu, čak i ako to ne dopuštaju dozvole pristupa na datoteku.

Prozor za eksploataciju nastaje jer funkcija __ptrace_may_access() propušta provjeru mogućnosti pristupa datoteci, ako je polje task->mm postavljeno na NULL nakon izvođenja exit_mm(), ali prije poziva exit_files(). U tom trenutku sistemski poziv pidfd_getfd smatra da identifikator korisnika (uid) pozivajućeg procesa odgovara onom koji ima pristup datoteci. Zanimljivo je da je na problem prvi put ukazano još 2020. godine, ali je ostao neispravljen.

U eksploitu koji dobiva sadržaj /etc/shadow, napad se svodi na ciklično pokretanje putem fork+execl aplikacije /usr/bin/chage s oznakom suid root, koja čita sadržaj /etc/shadow. Nakon što se proces odvoji, izvršava se sistemski poziv pidfd_open i provodi ciklično pretraživanje dostupnih pidfd-deskriptora putem sistemskog poziva pidfd_getfd i njihova provjera putem /proc/self/fd. U eksploitu sshkeysign_pwn slične manipulacije provode se s suid root programom ssh-keysign.

CVE identifikator problema još nije dodijeljen, nadogradnje jezgre i paketa u distribucijama nisu objavljene. U jezgrima 7.0.7, 6.18.30 i 6.12.88, koja su objavljena prije nekoliko sati, ranjivost nije ispravljena. U trenutku pisanja vijesti moguće je koristiti samo zakrpu. Razmatraju se mogući zaobilaženja blokiranja ranjivosti, kao što su postavljanje sysctl kernel.yama.ptrace_scope=3 ili uklanjanje suid root zastavice s izvršnih datoteka u sustavu (barem s alatima ssh-keysign i chage, koji se koriste u eksploitatima).

Dopuna: Ranjivost je dobila identifikator CVE-2026-46333. Formirane su nadogradnje jezgre Linux 7.0.8, 6.18.31, 6.12.89, 6.6.139, 6.1.173, 5.15.207 i 5.10.256 s ispravkom ranjivosti. Status ispravki ranjivosti u distribucijama može se procijeniti na ovim stranicama: Debian, Ubuntu, SUSE/openSUSE, RHEL, Gentoo, Arch, Fedora.

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster