GHOST: vulnerabilità in glibc

Nonostante il titolo criptico, la sostanza è molto seria e può impattare un grande numero di sistemi.

La vulnerabilità permette di eseguire programmi arbitrari sulla vittima da remoto (remote code execution) e interessa la funzione interna __nss_hostname_digits_dots() della libreria glibc utilizzata da gethostbyname().

In sostanza ogni programma compilato con gcc e glibc fino alla versione 2.17 inclusa e utilizza quella funzione è vulnerabile.

La brutta notizia è che praticamente tutti i programmi che interagiscono con Internet utilizzano gethostbyname()

La vulnerabilità sarebbe presente in quella funzione dal 2000 circa. Nel 2013 era stata segnalata ed era stata proposta una patch, ma non era stata riconosciuto come un problema di sicurezza, quindi la patch non era stata inclusa nelle distribuzioni con un tempo di supporto lungo che utilizzano versioni stabili di glibc quali, ad esempio, RedHat, Debian, Ubuntu LTS e SUSE.

Le maggiori distribuzioni interessate dal problema hanno già pubblicato gli aggiornamenti.

Dopo aver aggiornato la libreria è necessario riavviare tutti i servizi che la utilizzano. Chi non ha particolari problemi nel farlo e non lo considera un atto contrario alla sua fede può banalmente riavviare il sistema per avere la certezza che tutti i programmi carichino la versione corretta di glibc.

Alcuni exploit, come quello contro Exim, sono già pubblici, quindi è meglio muoversi con rapidità.

Aggiornamento: Wietse Venema ha scritto che Postfix non è vulnerabile a questo tipo di attacco se non in una particolare circostanza che si verifica su sistemi molto vecchi.

Autore: Luigi Rosa

Consulente IT, sviluppatore, SysAdmin, cazzaro, e, ovviamente, geek.

Un pensiero riguardo “GHOST: vulnerabilità in glibc”

  1. L’attacco ad Exim puo` essere mitigato in maniera abbastanza semplice.

    L’unico modo in cui si puo` causare il buffer overflow e` quello di inserire una stringa appositamente formattata nel “HELO”.

    Se Exim non ha definite nella configurazione nessuna di queste due voci:

    helo_verify_hosts
    helo_try_verify_hosts

    e se nessuna ACL usa il comando:

    verify = helo

    allora la vostra installazione non e` attaccabile con l’ exploit che e` stato diffuso.

Spazio per un commento