В Linux Luka w zabezpieczeniach ssh-keysign-pwn, która umożliwia użytkownikom lokalnym odczytywanie plików root, została usunięta.

W rdzeniu Linux Luka, która otrzymała nieoficjalną nazwę, została naprawiona ssh-keysign-pwnProblem ten umożliwia lokalnemu użytkownikowi bez uprawnień odczyt plików, które powinny być dostępne tylko dla użytkownika root, w tym prywatnych kluczy hosta SSH oraz, w niektórych przypadkach, pliku /etc/shadow. W momencie publikacji nie przypisano jeszcze konkretnego kodu CVE dla tego problemu.

Pomimo nazwy nie jest to błąd w OpenSSH jako serwerze sieciowym sshd, ale raczej wada w logice rdzenia Linux, związane z kontrolą ptrace i dostępem do deskryptorów plików innego procesu za pośrednictwem pidfd_getfd(2). Narzędzie OpenSSH ssh-keysign okazało się wygodnym przykładem wykorzystania, ponieważ działa z prywatnymi kluczami hosta, które zazwyczaj należą do roota i są niedostępne dla zwykłych użytkowników.

Istota błędu Problem polegał na tym, że funkcja __ptrace_may_access() nieprawidłowo obsługiwała stan procesu, którego struktura pamięci mm już zniknęła, ale którego otwarte deskryptory plików nadal istniały. Podczas kończenia procesu jądro wywołuje funkcję exit_mm() przed zamknięciem plików za pomocą funkcji exit_files(). W tym krótkim czasie proces wydaje się nie mieć już normalnej przestrzeni adresowej użytkownika, ale jego otwarte pliki nadal istnieją. Z tego powodu możliwe było pominięcie sprawdzania stanu „zrzucalności”, a funkcja pidfd_getfd() mogła uzyskać dostęp do deskryptora pliku innej osoby z pasującym UID.

Praktyczny scenariusz dotyczy programów z uprawnieniami setuid, które najpierw otwierają poufny plik z uprawnieniami roota, a następnie usuwają uprawnienia i kończą działanie z wciąż otwartym uchwytem. W opublikowanym opisie użyto ssh-keysign jako przykładu: otwiera on /etc/ssh/ssh_host_{ecdsa,ed25519,rsa}_key, a następnie usuwa uprawnienia i może zakończyć działanie, jeśli opcja EnableSSHKeysign jest wyłączona. Klucze te powinny być dostępne tylko dla użytkownika root, ponieważ służą do uwierzytelniania na hoście.

Drugim przykładem jest komenda chage, która może otworzyć plik /etc/shadow, a następnie zresetować aktywne uprawnienia i zakończyć działanie. W rezultacie atak niekoniecznie zapewnia natychmiastową powłokę roota, ale umożliwia dostęp do zawartości plików zazwyczaj uważanych za poufne. Wyciek pliku /etc/shadow stwarza ryzyko późniejszego odgadnięcia hasła w trybie offline, podczas gdy wyciek prywatnych kluczy hosta SSH stwarza ryzyko podszywania się pod hosta lub ataków na zaufane skrypty SSH.

Poprawka została już zaakceptowana w gałęzi głównej. LinuxZatwierdzenie 31e62c2ebbfd z nagłówkiem ptrace: nieco bardziej logiczna logika „get_dumpable()” zmienia działanie sprawdzania możliwości zrzutu: jądro zachowuje teraz stan user_dumpable, gdy mm znika i wymaga poprawnego sprawdzenia CAP_SYS_PTRACE, aby je ominąć. Poprawka dotyczy plików include/linux/sched.h, kernel/exit.c i kernel/ptrace.c.

Luka została zgłoszona przez firmę Qualys, a Linus Torvalds załatał ją 14 maja 2026 r. Phoronix zaznacza, że ​​w momencie publikacji problem dotyczył wszystkich wersji jądra. Linux Do obecnego stanu drzewa głównego przed wprowadzeniem poprawki. Autor PoC wskazuje również, że kernele sprzed zatwierdzenia 31e62c2ebbfd są podatne, w tym stabilne gałęzie z 14 maja.

Szczególnie ważne jest, aby wykorzystanie luk nie wymagało ładowania określonych modułów jądra, jak ma to miejsce w przypadku wielu niedawnych luk w zabezpieczeniach LPE. Wystarczający jest lokalny, nieuprawniony dostęp do systemu oraz obecność odpowiedniego, uprzywilejowanego procesu pomocniczego. Debian Daniel Baumann zanotowano, że problem ten można rozwiązać poprzez aktualizację jądra i ponowne uruchomienie komputera z poprawioną wersją jądra.

Opublikowane repozytorium z wersją demonstracyjną rzekomo zostało przetestowane na systemie operacyjnym Raspberry Pi OS Bookworm z jądrem 6.12.75, Debian 13, Ubuntu 22.04, Ubuntu 24.04, Ubuntu 26.04, Łuk i CentOS 9. Tę listę należy traktować jako dane autora dotyczące PoC, a nie jako listę wyczerpującą: ponieważ błąd tkwi w ogólnej logice jądra, rzeczywisty zasięg zależy od wersji jądra i dostępności poprawki backport dla konkretnej dystrybucji.

Dla administratorów podstawowe zalecenie jest proste: zainstaluj zaktualizowany pakiet jądra dla swojej dystrybucji i zrestartuj system. Jeśli istnieją powody, by sądzić, że atakujący miał wcześniej lokalny, nieuprawniony dostęp do komputera po aktualizacji, warto dodatkowo rozważyć rotację kluczy hosta SSH i sprawdzenie pliku /etc/shadow/accounts, ponieważ sama luka w zabezpieczeniach dotyczy odczytu poufnych plików, a nie tylko abstrakcyjnego obejścia kontroli dostępu.

В Debian Prace nad przeniesieniem poprawki do backportu już się rozpoczęły: Baumann zgłosił wybiórcze zatwierdzenie w trixie-fastforward-backports i wysłanie żądania scalenia do Debian sid. Żądanie scalenia wyraźnie stwierdza, że ​​commit 31e62c2 jest przenoszony w celu naprawy logiki ptrace funkcji dumpability, która pozwala nieuprawnionemu użytkownikowi na odczyt plików głównych.

Źródło: linux.org.ru

Kup niezawodny hosting dla stron z ochroną DDoS, serwery VPS VDS 🔥 Kup niezawodny hosting stron internetowych z ochroną DDoS, serwery VPS VDS | ProHoster