Systemd vulnerabile ad attacchi DNS

Il componente di Systemd per la risoluzione dei nomi di dominio è vulnerabile: un server malevolo può effettuare un attacco di buffer overflow. Le maggiori distro GNU/Linux corrono ai ripari rendendo disponibili le patch

Roma – Una nuova vulnerabilità è stata scoperta nel sistema di init Systemd: un server DNS malevolo può sfruttare un errore nell’allocazione di un buffer in systemd-resolved per scrivere dati arbitrari in memoria, causando il crash del software o, potenzialmente, eseguire comandi arbitrari con privilegi elevati .

Introdotta a Giugno 2015 in systemd 223 e presente anche nel rilascio 233 dello scorso marzo, la vulnerabilità è stata scoperta da Chris Coulson – software engineer in Canonical – ed è identificata nel database Common Vulnerability Exposure con il codice CVE-2017-9445 .

La funzione affetta è dns_packet_new di resolved , che può essere attaccata da un server DNS malevolo tramite una risposta DNS appositamente costruita, provocando l’allocazione di un buffer più piccolo del necessario .

Il bug si verifica a causa di un errore nel calcolo della lunghezza della zona di memoria da allocare, che restituisce valori troppo piccoli quando la grandezza della risposta DNS è prossima al valore massimo ammesso per la grandezza del pacchetto UDP (MTU dichiarato sull’interfaccia meno la dimensione degli header IP e UDP).

Passando a dns_packet_new un valore di 4016 byte nel parametro mtu (dal nome fuorviante, ma che da un’analisi del codice sembra indicare la grandezza massima del payload del pacchetto) in fase di allineamento della struttura alle pagine di memoria avremo un’allocazione di memoria di 80 byte in più di dati rispetto alla dimensione della struttura, raggiungendo 4096 byte.
Tuttavia l’allocazione della struttura DnsPacket richiede almeno 108 byte, portando il payload a sforare.

La patch , effettuata da Zbigniew Jędrzejewski-Szmek , punta a semplificare e a correggere questo calcolo.

Tra le distribuzioni Linux coinvolte annoveriamo Ubuntu (nelle versioni 16.10 e 17.04), Debian (Sid, Stretch e Buster, sebbene in Stretch systemd-resolved sia disabilitato di default).
Canonical, che ha assegnato un livello di severity elevato alla vulnerabilità, ha segnalato la presenza della patch per la risoluzione del problema nella Ubuntu Security Notice 3341-1 ; anche Debian ha pubblicato un proprio bollettino .
Red Hat Enterprise Linux e CentOS non sono vulnerabili, mentre per Fedora è stato rilasciato un aggiornamento.

Tale vulnerabilità ha sollevato nuovamente i dubbi della comunità nei confronti di systemd. Questo componente dovrebbe nascere come sistema per l’inizializzazione dei servizi; nonostante ciò, nel tempo, il numero di demoni ad esso corollari è cresciuto in maniera spropositata andando ad re-implementare funzionalità già egregiamente fornite da altri software.
Inoltre l’atteggiamento del fondatore del progetto, Lennart Poettering , si dimostra ancora una volta ostile alla segnalazioni delle problematiche di sicurezza. Allo sviluppatore Christian Rebischke , membro del team di sicurezza di Arch Linux che ha proposto la citazione alla suddetta patch nei changelog, Poettering risponde criticando il CVE.


Dal manutentore del software eseguito in PID 1 sulle maggiori distribuzioni Linux ci si aspetterebbe probabilmente un diverso approccio nei confronti degli standard per la segnalazione delle vulnerabilità .

Una reazione simile è stata riscontrata in un’altra recente problematica che ha scatenato l’ilarità della community: se in un file di Unit il valore del parametro User inizia con un numero, questo viene scartato e il processo collegato viene eseguito come root. La segnalazione, in questo caso, è stata immediatamente chiusa poiché per parola di Poettering stesso ciò non costituisce un problema dato che uno username che inizia con un valore numerico non aderisce allo standard POSIX. La risposta, pur condivisibile, non ha portato quindi a riscontri positivi per la risoluzione della problematica: il comportamento più idoneo dovrebbe essere la restituzione di un errore con conseguente blocco dell’esecuzione.

Per queste ed altre ragioni in molti si stanno opponendo all’adozione di systemd riportando in auge il più tradizionale Sysvinit . Un esempio di progetto open-source in tal senso è Devuan , fork di Debian che costituisce ormai un’alternativa matura – e libera da systemd – alla popolare distribuzione Linux.

Patrizio Tufarolo

La tua email sarà utilizzata per comunicarti se qualcuno risponde al tuo commento e non sarà pubblicato. Dichiari di avere preso visione e di accettare quanto previsto dalla informativa privacy

  • Nameless scrive:
    _________
    Gli europeisti sono un mucchio di XXXXXXXX pezzi di XXXXX buoni solo a parlare
  • lorenzo scrive:
    Ricapitolando ...
    Gli servono degli esperti per sapere se google si mettera' in regola , non avranno mica deciso senza esperti che non lo e' ? La cosa lascia perplessi , anche perche' se l'ipotesi che abbiano deciso senza esperti e' verificata con questo bando si sono messi nella posizione di perdere in partenza un eventuale ricorso di google ... Oltre ad essersi esposti al ridicolo ...
    • Luca scrive:
      Re: Ricapitolando ...
      Capito tutto! Un conto è monitorare costantemente, un conto è accertare un problema ad un certo istante. Hanno bisogno, banalmente, di manodopera aggiuntiva.
  • fiducioso scrive:
    soldi dei contribuenti
    Su 2,4 miliardi di euro di multa, 10 milioni di euro per la consulenza sembrano una spesa ragionevole non uno spreco.
    • bubba scrive:
      Re: soldi dei contribuenti
      - Scritto da: fiducioso
      Su 2,4 miliardi di euro di multa, 10 milioni di
      euro per la consulenza sembrano una spesa
      ragionevole non uno
      spreco.e' pero' almeno dal 2010 che titillano le tasche di google (svuotando nel frattempo le nostre) ..... e a parte il ridicolo google shopping, mi pare abbiano in cantiere altre 2 "vertenze" ... sugli ads e su alcuni aspetti di android... pffff... tanto non c'e' fretta....
  • bradipao scrive:
    soldi dei contribuenti
    Ci sarebbe da ridere, se non fosse che è tutto pagato con i soldi dei contribuenti europei.
Chiudi i commenti