dettagli della vulnerabilità critica () nel gestore SLIRP, utilizzato di default in QEMU per creare un canale di comunicazione tra l'adattatore di rete virtuale nel sistema ospite e il backend di rete lato QEMU. Il problema riguarda anche i sistemi di virtualizzazione basati su KVM (in modalità ) e Virtualbox, in cui vengono utilizzati i backend slirp di QEMU, oltre alle applicazioni che impiegano lo stack di rete nello spazio utente (emulatore TCP/IP).
La vulnerabilità consente l'esecuzione di codice sul sistema host con i diritti del processo gestore QEMU quando si invia dal sistema ospite un pacchetto di rete appositamente formattato e di grandi dimensioni, per il quale è necessaria la frammentazione. A causa di un errore nella funzione ip_reass(), chiamata durante la ricostruzione dei pacchetti in arrivo, il primo frammento può non entrare nel buffer allocato e la sua parte finale verrà scritta nelle aree di memoria successive al buffer.
Per testare già un prototipo di exploit funzionante, che prevede un bypass dell'ASLR e l'esecuzione di codice tramite la sovrascrittura della memoria dell'array main_loop_tlg, che include l'elenco QEMUTimerList con i gestori chiamati dal timer.
La vulnerabilità è già stata corretta in e , ma rimane non risolta in , e . In e il problema non si manifesta a causa della non utilizzazione di slirp. La vulnerabilità rimane non corretta nell'ultima versione di (la correzione è attualmente disponibile come ).
Fonte: opennet.ru
