Due bug, due core dump, troppa leggerezza: due vulnerabilità gravi in Apport e systemd-coredump

Il sobrissimo logo di Apport

A quanti è capitato di dialogare con uno dei servizi di supporto delle distribuzioni Linux di classe enterprise la parola core dump suonerà particolarmente familiare. Si tratta infatti della cattura dello stato di un processo nel momento in cui questo viene interrotto in modo inatteso, ed i dati in esso contenuti sono essenziali per il debug e le cosiddette analisi post-mortem, essenziali per il supporto.

Come è facile intuire però, i permessi in possesso dei programmi che generano questi core dump devono essere particolarmente elevati. Questo significa che, se vengono gestiti male, possono diventare un veicolo d’attacco particolarmente interessante.

A dimostrarlo, le due falle CVE-2025-5054 e CVE-2025-4598 scoperte da Qualys Security Advisory, le quali si basano proprio su una sottovalutazione pericolosa: la possibilità cioè per un utente locale di accedere a informazioni sensibili (come gli hash delle password contenuti in /etc/shadow) semplicemente facendosi aiutare da un core dump mal gestito.

Ad essere affetti dalla problematica sono Apport, il gestore dei core dump di Ubuntu, e systemd-coredump, il suo equivalente in ambienti basati Red Hat, come Fedora, CentOS, AlmaLinux e Rocky Linux.

L’attacco verso Apport (CVE-2025-5054) si basa su una race condition, quindi una situazione che non si verifica puntualmente, ma solo in determinate circostanze, a volte addirittura sconosciute (in poche parole per sfruttarla, ci si prova finché non si verifica): l’attaccante crasha un programma SUID come unix_chkpwd (che legge /etc/shadow), e nel brevissimo lasso di tempo in cui apport raccoglie informazioni da /proc/pid/, sostituisce il processo con un altro. Il trucco è così raffinato che il core dump continua a essere quello del processo originario, ma apport, ingannato, invia i dati a un altro socket, che però è controllato dall’attaccante.

Voilà: password hash serviti su un piatto d’argento. Hash non vuol dire password in chiaro, ovvio, ma è un ottimo punto di partenza.

La Proof Of Concept per lo sfruttamento di questa vulnerabilità è stata creata per Ubuntu 24.04, la quale monta una versione di apport che mitigava un problema simile già scoperto, ma che purtroppo qui è inefficace, poiché l’attacco avviene prima di qualsiasi altro controllo.

Alle distribuzioni Red Hat based non va meglio, la CVE-2025-4598 che riguarda systemd-coredump ignora il valore del flag “dumpable” del kernel, che stabilisce se un processo può essere sottoposto a core dump in base alla sua UID. Così, un utente locale può indurre un daemon root (come sshd, cron o sd-pam) a crashare (es. con un SIGSEGV), e leggere la sua memoria dumpata.

A questo punto l’accesso agli hash delle password o alle chiavi private usate da sshd è consentito.

Fortunatamente c’è una mitigazione, che consiste nell’impostare /proc/sys/fs/suid_dumpable a 0 per disabilitare i core dump su processi SUID/SGID, ma è ovvio che appena i pacchetti saranno disponibili l’aggiornamento è caldamente consigliato.

Nel frattempo, occhio ai vostri sistemi.

Da sempre appassionato del mondo open-source e di Linux nel 2009 ho fondato il portale Mia Mamma Usa Linux! per condividere articoli, notizie ed in generale tutto quello che riguarda il mondo del pinguino, con particolare attenzione alle tematiche di interoperabilità, HA e cloud.
E, sì, mia mamma usa Linux dal 2009.

5 risposte a “Due bug, due core dump, troppa leggerezza: due vulnerabilità gravi in Apport e systemd-coredump”

  1. Avatar JustATiredMan
    JustATiredMan

    systemd,…. sempre lui in mezzo…

  2. Avatar acu
    acu

    KISS da redhat ;*
    Comunque ci sta, credo che tutto sommato sia forse un bene per Linux eliminare l'esagerata frammentazione. Systemd, wayland, ecc.. alla fine cercano di unificare le distro e questo è un bene per lo sviluppo software

  3. Avatar Raoul Scarazzini

    Alla fine è esattamente da lì che deriva l'interesse in primis di Red Hat, ma in realtà di tutte le distro, verso systemd: si tratta di qualcosa che agevola enormemente la gestione a livello enterprise. È vero che rompe la filosofia Unix del "fare una sola cosa e farla bene", ma in termini gestionali è certamente più facile da mantenere.

    Poi è oggettivamente una tecnologia invasiva e sì, antipatica, ma l'onestà impone di riflettere sul fatto che problemi come questi non sono causati da quei due fattori… Per come viene sfruttata la vulnerabilità mille altri tool avrebbero potuto caderci.

  4. Avatar Raoul Scarazzini

    Esattamente. Monitorare e aggiornare. Altro che IA.

  5. Avatar JaK
    JaK

    Mi permetto di aggiungere che sì, per quanto non mi piaccia systemd, una race condition può sempre capitare, anche ai migliori.

    Nessuno ricorda il Grande Crash di AT&T nei primi anni ‘90 a causa di un bug in UNIX system7? 😉

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *