V jádru Linux byla odhalena pátá (1, 2, 3) kritická zranitelnost za poslední dva týdny, která umožňuje uživateli zvýšit své oprávnění v systému. Byly zveřejněny dva funkční exploitace: sshkeysign_pwn umožňuje neoprávněnému uživateli přečíst obsah soukromých hostitelských SSH klíčů /etc/ssh/ssh_host_*_key, a chage_pwn – přečíst obsah souboru /etc/shadow s hashemi uživatelských hesel.
Informace o zranitelnosti nebyly plánovány k odhalení, ale jeden z výzkumníků v oblasti bezpečnosti dokázal na základě navrhovaného pardonu pro jádro určit podstatu zranitelnosti, která umožňuje přečíst soubory dostupné pouze uživateli root, například /etc/shadow. V přidané změně do jádra byla upravena logika použití funkce get_dumpable() v ptrace při určení úrovně přístupu v funkci ptrace_may_access().
Samotná zranitelnost je způsobena závodem, který vede k možnosti neoprávněného přístupu k deskriptoru pidfd po přístupu k souboru ze suid root procesu. V okamžiku mezi otevřením souboru a snížením oprávnění v suid programu (například přes funkci setreuid) vzniká situace, kdy aplikace, která spustila suid root program, může přes deskriptor pidfd přistupovat k otevřenému souboru v suid programu, i když to práva přístupu na soubor neumožňují.
Okno pro exploitaci vzniká proto, že funkce "__ptrace_may_access()" přeskočí kontrolu možnosti přístupu k souboru, pokud je pole task->mm nastaveno na hodnotu NULL po vykonání exit_mm(), ale před vyvoláním exit_files(). V této chvíli systémový hovor pidfd_getfd považuje, že identifikátor uživatele (uid) volajícího procesu odpovídá identifikátoru, který má přístup k souboru. Je pozoruhodné, že na problém se již dříve upozorňovalo v roce 2020, ale zůstal neopravovaný.
V exploitaci, která získává obsah /etc/shadow, útok spočívá v cyklickém spuštění přes fork+execl aplikace /usr/bin/chage s flagem suid root, která čte obsah /etc/shadow. Po odštěpení procesu se provádí systémový hovor pidfd_open a provádí se cyklické procházení dostupných pidfd deskriptorů prostřednictvím systémového volání pidfd_getfd a jejich kontrola prostřednictvím /proc/self/fd. V exploitaci sshkeysign_pwn se podobné manipulace provádějí s suid root programem ssh-keysign.
CVE identifikátor problému zatím nebyl přidělen, aktualizace jádra a balíčků v distribucích nebyly publikovány. V jádrech verze 7.0.7, 6.18.30 a 6.12.88, která byla vydána před několika hodinami, nebyla zranitelnost odstraněna. V době psaní zprávy lze použít pouze záplatu. Probíhají diskuse o možných obcházení blokování zranitelnosti, jako je nastavení sysctl kernel.yama.ptrace_scope=3 nebo odstranění suid root flagu z vykonatelných souborů v systému (minimálně z utilit ssh-keysign a chage, které se používají v exploitech).
Dodatek: Zranitelnosti byl přidělen identifikátor CVE-2026-46333. Byly vytvořeny aktualizace jádra Linux verze 7.0.8, 6.18.31, 6.12.89, 6.6.139, 6.1.173, 5.15.207 a 5.10.256 k odstranění zranitelnosti. Stav odstranění zranitelností v distribucích lze hodnotit na těchto stránkách: Debian, Ubuntu, SUSE/openSUSE, RHEL, Gentoo, Arch, Fedora.
Zdroj: opennet.ru
