In FreeBSD Cinque vulnerabilità, di cui alcune possono causare la sovrascrittura dei dati a livello di kernel quando vengono inviati pacchetti di rete specifici o consentire a un utente locale di elevare i propri privilegi. Le vulnerabilità sono state corrette negli aggiornamenti 12.1-RELEASE-p5 e 11.3-RELEASE-p9.
La vulnerabilità più grave () è causata dalla mancanza di un'adeguata verifica della dimensione del pacchetto nella libreria libalias durante l'analisi degli header specifici per i protocolli. La libreria libalias è utilizzata nel filtro pacchetti ipfw per la traduzione degli indirizzi e include funzioni tipiche di sostituzione degli indirizzi nei pacchetti IP e di analisi dei protocolli. La vulnerabilità consente, attraverso l'invio di un pacchetto di rete specificamente formattato, di leggere o scrivere dati nell'area di memoria del kernel (quando si utilizza l'implementazione NAT nel kernel) o del processo
natd (quando si utilizza l'implementazione NAT nello spazio utente). Il problema non riguarda le configurazioni NAT costruite utilizzando i filtri pacchetti pf e ipf, così come le configurazioni ipfw che non utilizzano NAT.
Altre vulnerabilità:
- — un'altra vulnerabilità sfruttabile da remoto in libalias, correlata a un calcolo errato della lunghezza dei pacchetti nel gestore FTP. Il problema è limitato alla perdita di contenuto di alcuni byte di dati dall'area di memoria del kernel o del processo natd.
- — vulnerabilità nel modulo cryptodev, causata dall'accesso a un'area di memoria già liberata (use-after-free), che consente a un processo non privilegiato di sovrascrivere aree arbitrarie della memoria del kernel. Come soluzione temporanea per bloccare la vulnerabilità, si raccomanda di scaricare il modulo cryptodev con il comando «kldunload cryptodev», se è stato caricato (per impostazione predefinita, cryptodev non viene caricato). Il modulo cryptodev fornisce alle applicazioni nello spazio utente accesso all'interfaccia /dev/crypto per accedere ai meccanismi di accelerazione hardware delle operazioni crittografiche (in AES-NI e OpenSSL /dev/crypto non viene utilizzato).
- — la seconda vulnerabilità in cryptodev, che consente a un utente non privilegiato di causare un crash del kernel inviando una richiesta per l'esecuzione di un'operazione crittografica con un MAC non corretto. Il problema è causato dalla mancanza di verifica delle dimensioni della chiave MAC durante l'allocazione del buffer per il suo stoccaggio (il buffer veniva creato sulla base dei dati forniti dall'utente riguardo le dimensioni, senza controllare la dimensione effettiva).
- — vulnerabilità nell'implementazione del protocollo SCTP (Stream Control Transmission Protocol), causata da un controllo non corretto della chiave condivisa utilizzata dall'estensione SCTP-AUTH per l'autenticazione delle sequenze SCTP. Un'applicazione locale può aggiornare la chiave tramite Socket API, interrompendo contemporaneamente la connessione SCTP, il che porta ad accedere a un'area di memoria già liberata (use-after-free).
Fonte: opennet.ru
