cve: Una raccolta di codice relativo a CVE-2016-0728 (vari autori)
Estratti da Linux, che mostrano l'evoluzione e la correzione del bug
Codice exploit di Perception Point con commenti aggiunti che spiegano cosa fa ogni riga.
Un breve script che usa la falla per incrementare il contatore di utilizzo, utile per determinare se il bug esiste sul tuo sistema.
Una versione dell'exploit che bypassa i wrapper delle syscall (per i sistemi che non implementano i wrapper keycntl).
La prima patch di emergenza di gennaio 2016
Il modo migliore per replicare questo exploit è trovare una versione affetta di una build Linux, elencata di seguito. Le ISO possono contenere patch backportate, quindi devi scaricare il codice sorgente e compilarlo da solo.
L'esecuzione dell'exploit su una versione moderna di Ubuntu (modificata per mantenere il bug) ha dato risultati strani. Ho scritto test.c per monitorarlo, scrivendo l'output nel file keylog. Il programma viene eseguito indipendentemente dall'exploit, usando nanosleep per controllare la frequenza di campionamento. keylog è l'output dell'esecuzione con un periodo di 500 nanosecondi per circa mezzo secondo.
Interpretazione del file keylog: Il numero a sinistra è il numero di iterazione. Viene emesso un valore quando la pendenza cambia. tState conta quante iterazioni sono trascorse dall'ultima variazione della pendenza. È completamente casuale e non vale la pena studiarlo.
In questo test l'output era imprevedibile e non c'è stato overflow di interi, il che significa che l'exploit fallisce su una versione moderna, modificata o meno. Compila invece una versione dall'elenco.
Versioni Affette
Red Hat Enterprise Linux 7
CentOS Linux 7
Scientific Linux 7
Debian Linux stable 8.x (jessie)
Debian Linux testing 9.x (stretch)
SUSE Linux Enterprise Desktop 12
SUSE Linux Enterprise Desktop 12 SP1
SUSE Linux Enterprise Server 12
SUSE Linux Enterprise Server 12 SP1
SUSE Linux Enterprise Workstation Extension 12
SUSE Linux Enterprise Workstation Extension 12 SP1