Ranjivost u Linux- podsustav pidfd, koji omogućuje čitanje datoteka kojima korisnik ne može pristupiti

U jezgri Linux Peta (1, 2, 3) kritična ranjivost u posljednja dva tjedna je identificirana, a omogućuje korisniku eskalaciju svojih privilegija u sustavu. Objavljena su dva radna exploita: sshkeysign_pwn omogućuje neprivilegiranom korisniku čitanje sadržaja SSH ključeva privatnog hosta /etc/ssh/ssh_host_*_key, a chage_pwn omogućuje neprivilegiranom korisniku čitanje sadržaja datoteke /etc/shadow koja sadrži hashove korisničkih lozinki.

Ranjivost nije bila namijenjena otkrivanju, ali istraživač sigurnosti uspio ju je identificirati na temelju predložene zakrpe za kernel, koja omogućuje čitanje datoteka dostupnih samo root korisniku, kao što je /etc/shadow. Promjena kernela prilagodila je logiku korištenja funkcije get_dumpable() u ptraceu pri određivanju razina pristupa u funkciji ptrace_may_access().

Ranjivost je uzrokovana uvjetom utrke koji omogućuje neprivilegirani pristup deskriptoru datoteke pidfd nakon pristupa datoteci iz suid root procesa. Između otvaranja datoteke i resetiranja privilegija u suid programu (na primjer, putem funkcije setreuid), nastaje situacija u kojoj aplikacija koja pokreće suid root program može pristupiti datoteci koju je otvorio suid program putem pidfd deskriptora, čak i ako dozvole datoteke to ne dopuštaju.

Prozor koji se može iskoristiti nastaje jer funkcija "__ptrace_may_access()" preskače provjeru pristupa datoteci ako je polje task->mm postavljeno na NULL nakon exit_mm(), ali prije nego što se pozove exit_files(). Trenutno, sistemski poziv pidfd_getfd pretpostavlja da se korisnički ID (uid) pozivajućeg procesa podudara s korisničkim ID-om ovlaštenim za pristup datoteci. Vrijedi napomenuti da je ovaj problem prethodno riješen 2020. godine, ali ostaje neriješen.

U exploitu koji dobiva sadržaj /etc/shadow, napad se sastoji od ponovljenog pokretanja aplikacije /usr/bin/chage putem fork+execl sa suid root zastavicom, koja čita sadržaj /etc/shadow. Nakon što se proces forkne, izvršava se sistemski poziv pidfd_open, te se petlja dostupnih pidfd deskriptora izvodi putem sistemskog poziva pidfd_getfd i njihova provjera putem /proc/self/fd. U sshkeysign_pwn exploitu, slične manipulacije se izvode sa suid root ssh-keysign programom.

Problemu još nije dodijeljen CVE identifikator, a ažuriranja kernela i paketa nisu objavljena u distribucijama. Ranjivost ostaje nezakrpana u kernelima 7.0.7, 6.18.30 i 6.12.88, objavljenim prije nekoliko sati. U trenutku pisanja ovog teksta, može se koristiti samo zakrpa. Raspravlja se o mogućim rješenjima, kao što je postavljanje sysctl kernel.yama.ptrace_scope=3 ili uklanjanje suid root zastavice iz izvršnih datoteka u sustavu (barem iz uslužnih programa ssh-keysign i chage koji se koriste u exploitima).

Ažuriranje: Ranjivosti je dodijeljen identifikator CVE-2026-46333. Generirana su ažuriranja 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 ispravcima ranjivosti. Status ispravaka ranjivosti za ove distribucije može se procijeniti na ovim stranicama: Debian, Ubuntu, SUSE/openSUSE, RHEL, Gentoo, Arch, Fedora.

Izvor: opennet.ru

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