Vulnerabilità nel kernel Linux che può causare un arresto anomalo del sistema inviando un pacchetto UDP

Nel kernel Linux identificato vulnerabilità (CVE-2019-11683), che consente di provocare da remoto un rifiuto di servizio inviando pacchetti UDP (packet-of-death) appositamente progettati. Il problema è causato da un errore nell'handler udp_gro_receive_segment (net/ipv4/udp_offload.c) con l'implementazione della tecnologia GRO (Generic Receive Offload) e può causare danni al contenuto delle aree di memoria del kernel durante l'elaborazione di pacchetti UDP con riempimento zero (carico utile vuoto).

Il problema riguarda solo il kernel 5.0poiché il supporto GRO per i socket UDP lo era implementato nel novembre dello scorso anno e sono riuscito ad accedere solo all'ultima versione stabile del kernel. La tecnologia GRO consente di accelerare l'elaborazione di un gran numero di pacchetti in entrata aggregando più pacchetti in blocchi più grandi che non richiedono l'elaborazione separata di ciascun pacchetto.
Per TCP il problema non si verifica poiché questo protocollo non supporta l'aggregazione dei pacchetti senza carico utile.

La vulnerabilità è stata finora risolta solo nella forma toppa, non è stato ancora pubblicato l'aggiornamento correttivo (aggiornamento 5.0.11 fix non incluso). Dai kit di distribuzione è riuscito ad essere incluso il kernel 5.0 Fedora 30, Ubuntu 19.04, Arch Linux, Gentoo e altre distribuzioni continuamente aggiornate. Debian, Ubuntu 18.10 e versioni precedenti, RHEL/CentOS и SUSE / openSUSE il problema non riguarda.

Il problema è stato riscontrato di conseguenza utilizzare Sistema di test fuzzing automatizzato creato da Google syzbot e analizzatore KAZAN (KernelAddressSanitizer), mirato a identificare errori quando si lavora con la memoria e fatti di accesso errato alla memoria, come l'accesso ad aree di memoria liberate e l'inserimento di codice in aree di memoria non destinate a tali manipolazioni.

Fonte: opennet.ru

Aggiungi un commento