DiGiTaL RiOt

Vulnerabilità del Kernel 2.6.17: Vmsplice()

Marzo 13, 2008 · Lascia un Commento

Scoperta ormai da circa un mese, questa vulnerabilità permette l’esecuzione di codice arbitrario nella macchina vittima, a causa di un mancato controllo su di un puntatore user-defined.

G0tR00t

Ecco il listato di codice fs/splice.c) riguardante la vulnerabilità:


error = get_user(base, &iov->iov_base);
/* ... */
if (unlikely(!base)) {
error = -EFAULT;
break;
}
/* ... */
sd.u.userptr = base;
/* ... */
size = __splice_from_pipe(pipe, &sd, pipe_to_user);

In particolare, la funzione __splice_from_pipe() assume che i puntatori forniti come parametri siano validi. La funzione pipe_to_user() invece dereferenzia questi puntatori permettendo l’inclusione dati arbitrari nella memoria del Kernel.

Altre funzioni mancanti di validazione dei parametri sono
vmsplice_to_user()”, “get_iovec_page_array() e “copy_from_user_mmap_sem()”.

La vulnerabilità affligge le versioni del kernel comprese tra la 2.6.17 e 2.6.24.1 con il vmsplice() attivo, ma dopo la pubblicazione dell’exploit è stato subito rilasciato il kernel 2.6.24.2

Categorie: Exploit · Linux · Sicurezza

0 risposte finora ↓

  • Non ci sono ancora commenti... Inizia tu riempiendo il modulo sottostante.

Lascia un Commento