La vulnerabilità ssh-keysign-pwn è stata chiusa in Linux, che permette agli utenti locali di leggere i file di root.

Una vulnerabilità è stata corretta nel kernel di Linux, che ha ricevuto un nome non ufficiale. ssh-keysign-pwn. Il problema consente a un utente locale non privilegiato di leggere file che dovrebbero essere accessibili solo a root, inclusi le chiavi host SSH private e, in alcuni scenari, /etc/shadow. Al momento della pubblicazione, un CVE separato per il problema non era ancora stato assegnato.

Nonostante il nome, non si tratta di un errore in OpenSSH come server di rete sshd, ma di un difetto nella logica del kernel di Linux, relativa ai controlli ptrace e all'accesso ai descrittori di file di un altro processo tramite pidfd_getfd(2). L'utilità OpenSSH ssh-keysign è risultata uno dei principali esempi di sfruttamento, poiché lavora con chiavi host private, che di solito appartengono a root e non sono accessibili agli utenti normali.

Il nocciolo del problema è che la funzione __ptrace_may_access() gestiva in modo errato lo stato di un processo, il cui spazio di memoria mm era già scomparso, ma aveva ancora descrittori di file aperti. Durante la terminazione del processo, il kernel chiama exit_mm() prima di chiudere i file tramite exit_files(). In questo breve intervallo, il processo sembra già non avere uno spazio d'indirizzamento per gli utenti normali, ma i suoi file aperti esistono ancora. Questo porta a una possibile elusione del controllo dello stato «dumpable», e a pidfd_getfd() viene concesso l'accesso a un descrittore di file di un altro utente con UID corrispondente.

Uno scenario pratico ruota attorno ai programmi setuid, che aprono inizialmente un file sensibile con i privilegi di root, quindi disabilitano i privilegi e terminano, pur mantenendo un descrittore aperto. Nella descrizione pubblicata viene fornito come esempio ssh-keysign: apre /etc/ssh/ssh_host_{ecdsa,ed25519,rsa}_key, quindi ripristina i privilegi e può terminare se EnableSSHKeysign è disattivato. Queste chiavi dovrebbero essere accessibili solo a root, poiché vengono utilizzate per l'autenticazione basata su host.

Il secondo esempio è chage, che può aprire /etc/shadow, quindi resettare i diritti efficaci e terminarsi. Di conseguenza, l'attacco non dà necessariamente immediatamente una shell con privilegi root, ma consente di ottenere il contenuto di file che solitamente si considerano critici. La fuga di /etc/shadow è pericolosa a causa della possibilità di un successivo attacco offline sui password, mentre la fuga delle chiavi host SSH private comporta il rischio di sostituzione dell'host o di attacchi su scenari SSH fidati.

La correzione è già stata accettata nel ramo principale di Linux. Il commit 31e62c2ebbfd con il titolo ptrace: slightly saner ‘get_dumpable()’ logic cambia il comportamento della verifica della dumpabilità: il kernel ora conserva lo stato user_dumpable alla scomparsa di mm e richiede una corretta verifica di CAP_SYS_PTRACE per eludere. Il patch riguarda include/linux/sched.h, kernel/exit.c e kernel/ptrace.c.

La vulnerabilità è stata riferita da Qualys e corretta da Linus Torvalds il 14 maggio 2026. Phoronix osserva che al momento della pubblicazione il problema riguardava tutte le versioni del kernel Linux fino allo stato attuale dell'albero mainline prima dell'applicazione della correzione. L'autore del PoC sottolinea inoltre che sono vulnerabili i kernel precedenti al commit 31e62c2ebbfd, comprese le branch stabili alla data del 14 maggio.

È particolarmente importante notare che per sfruttare questa vulnerabilità non è necessario caricare moduli specifici del kernel, come in alcuni recenti exploit di LPE. È sufficiente avere accesso locale non privilegiato al sistema e un appropriato processo helper privilegiato. Lo sviluppatore Debian Daniel Baumann ha osservato, afferma che questo problema deve essere risolto aggiornando il kernel e successivamente riavviando nel kernel corretto.

Nel repository pubblicato con la dimostrazione è stata dichiarata una verifica su Raspberry Pi OS Bookworm con kernel 6.12.75, Debian 13, Ubuntu 22.04, Ubuntu 24.04, Ubuntu 26.04, Arch e CentOS 9. Questo elenco deve essere considerato come dati forniti dall'autore del PoC e non come un elenco esaustivo: poiché l'errore è presente nella logica generale del kernel, l'effettiva copertura dipende dalla versione del kernel e dalla disponibilità di correzioni backport nel specifico distributore.

Per gli amministratori, la raccomandazione principale è semplice: installare il pacchetto del kernel aggiornato dal proprio sistema operativo e riavviare il sistema. Se ci sono motivi per ritenere che la macchina abbia già avuto accesso locale non privilegiato da parte di un aggressore, dopo l'aggiornamento si dovrebbe considerare anche la rotazione delle chiavi host SSH e il controllo delle registrazioni in /etc/shadow, poiché la vulnerabilità stessa è legata alla lettura di file sensibili e non solo a un generico aggiramento del controllo dell'accesso.

In Debian è già iniziato il lavoro per la portabilità della correzione: Baumann ha segnalato un cherry-pick del commit upstream in trixie-fastforward-backports e l'invio di una merge request per Debian sid. Nella merge request è specificato che viene portato il commit 31e62c2 per correggere la logica di dumpability di ptrace, che consente a un utente non privilegiato di leggere i file di root.

Fonte: linux.org.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster