La gestione dei crash sui sistemi Linux, sebbene essenziale per il debugging e l’affidabilità del software, può rivelarsi un’arma a doppio taglio. La recente scoperta di due vulnerabilità da parte dei tecnici del Qualys Threat Research Unit (TRU) lo dimostra in modo eloquente. Le vulnerabilità, catalogate con gli identificati CVE-2025-5054 e CVE-2025-4598, coinvolgono i meccanismi di generazione dei dump della memoria, ampiamente utilizzati su distribuzioni Linux enterprise e desktop.
Il cuore del problema risiede nella presenza di una race condition che permette a un attaccante locale di accedere a dati riservati contenuti nei dump, ad esempio gli hash delle password salvati nel file /etc/shadow
.
Crash reporting in Linux: Apport e systemd-coredump
Le due vulnerabilità CVE-2025-5054 e CVE-2025-4598, scoperte dai tecnici di Qualys, interessano rispettivamente componenti di sistema come Apport su Ubuntu e systemd-coredump su Red Hat Enterprise Linux (RHEL), Fedora e altre distribuzioni.
Apport è il sistema di crash reporting predefinito di Ubuntu e derivate. Raccoglie automaticamente stack trace, log, informazioni di pacchetto e altri dettagli diagnostici, creando report destinati agli sviluppatori. Tuttavia, il livello di dettaglio incluso nei core dump può comportare l’esposizione di dati personali o riservati.
Su distribuzioni come Red Hat Enterprise Linux (RHEL 9/10), Fedora, Arch, SUSE, è systemd-coredump a gestire la generazione e la conservazione dei dump. Questo strumento salva il contenuto della memoria dei processi crashati nel journal di sistema o in file su disco, accessibili di norma solo all’utente root.
I dettagli tecnici delle vulnerabilità
Come accennato in precedenza, entrambe le vulnerabilità risiedono in race condition nella gestione dei file dump generati da programmi SUID come unix_chkpwd
, (utilizzato per la verifica delle password).
Una race condition è un errore di programmazione che si verifica quando due o più processi (o thread) accedono e modificano dati condivisi in modo concorrente, e l’esito dipende dall’ordine temporale delle operazioni. In pratica, se il sistema non gestisce correttamente la sincronizzazione tra i processi, si possono generare comportamenti imprevedibili o vulnerabilità di sicurezza.
Nel caso delle vulnerabilità in Apport e systemd-coredump, la race condition permette a un attaccante locale di intercettare o accedere a file di dump di memoria prima che siano protetti, rivelando dati critici come gli hash delle password.
I programmi SUID (Set User ID) sono eseguibili Linux (e Unix) che, quando avviati, funzionano con i privilegi del proprietario del file, non dell’utente che li esegue. Se vi fosse una vulnerabilità a livello di SUID, un attaccante potrebbe ottenere accesso root o leggere dati riservati, come appunto nei casi legati ad Apport e systemd-coredump.
Attraverso un’attenta orchestrazione del crash di un processo dotato di privilegi elevati e il simultaneo accesso al file di dump, un attaccante può estrarre informazioni critiche dalla memoria, inclusi hash di password, chiavi crittografiche o dati dell’utente. Il codice proof-of-concept (PoC) sviluppato da Qualys dimostra la fattibilità di questi attacchi.
È un problema di sicurezza del quale bisogna davvero preoccuparsi?
Non tutte le vulnerabilità di sicurezza sono uguali. Alcune sono certamente molto più critiche di altre e, in questo caso, almeno a nostro avviso, il problema non è così grave come potrebbe sembrare a una prima sommaria analisi.
Innanzi tutto, entrambe le vulnerabilità che coinvolgono varie distribuzioni Linux, sono classificate con un punteggio CVSS medio (pari a 4,7). In particolare, però, il vettore di attacco è sempre locale, peraltro con un’aggressione complessa da porre in atto e la necessità di accesso fisico o di una shell locale.
L’attaccante deve inoltre possedere un account locale (anche sprovvisto di privilegi), con la possibilità di creare namespace utente.
Ancora, le vulnerabilità impattano negativamente sulla confidenzialità (possibile lettura di hash delle password, chiavi di cifratura, ecc.), ma non su integrità e disponibilità.
L’exploit dimostrato da Qualys permette effettivamente di ottenere gli hash delle password, ma il rischio pratico è limitato dalla complessità dell’attacco e dalla necessità di un accesso locale. Tuttavia, in ambienti enterprise o multiutente, la minaccia è più seria, perché può facilitare un’escalation di privilegi e i movimenti laterali nella rete.
Patch già disponibili
Per le varie distro Linux sono già disponibili le patch correttive, utili a correggere il comportamento di Apport e systemd-coredump. Per mettersi al sicuro, basta quindi aggiornare l’installazione delle proprie distribuzioni.
In attesa dell’implementazione delle patch, è eventualmente possibile adottare una soluzione temporanea che consiste nel disattivare la generazione di dump per i programmi SUID. Il comando utilizzabile è il seguente, che imposta un apposito parametro a livello del kernel:
echo 0 > /proc/sys/fs/suid_dumpable
Va comunque considerata come una misura temporanea, utile quando non si può aggiornare immediatamente il componente software vulnerabile.
Note finali
Le vulnerabilità scoperte in Apport e systemd-coredump confermano, tuttavia, che anche strumenti progettati per la stabilità del sistema possono diventare vettori d’attacco.
I dati conservati temporaneamente in memoria possono trasformarsi in una vera e propria una miniera d’oro per gli attaccanti. Ecco perché è importante proteggere i file di dump è cruciale