Vulnerabilità remota nello stack IPv6 di OpenBSD

Nel processo in background slaacd, responsabile in OpenBSD della configurazione automatica degli indirizzi IPv6 (IPv6 Stateless Address Autoconfiguration, RFC 4862), è stata individuata una vulnerabilità che provoca un overflow del buffer quando riceve un annuncio del router IPv6 (RA, Router Advertisement) appositamente formattato.

Inizialmente, la funzionalità di auto-configurazione degli indirizzi IPv6 era realizzata a livello del kernel, ma a partire da OpenBSD 6.2 è stata spostata in un processo separato e senza privilegi chiamato slaacd. Questo processo è responsabile dell'invio di messaggi RS (Router Solicitation) e dell'analisi delle risposte RA (Router Advertisement) contenenti informazioni sul router e sui parametri di connessione di rete.

A febbraio, in slaacd è stato corretto un errore che causava il crash in caso di specifica di 7 server nell'elenco RDNSS (Recursive DNS Servers). Tale errore ha attirato l'attenzione di ricercatori indipendenti, i quali hanno tentato di esaminare il codice di slaacd per identificare altri errori che si verificano durante l'analisi dei campi nei messaggi RA. L'analisi ha rivelato che nel codice c'è un ulteriore problema che si manifesta durante l'elaborazione del campo DNSSL (DNS Search List), includendo elenchi di nomi di dominio e modelli di host per DNS.

Ogni nome nell'elenco DNSSL è codificato utilizzando un delimitatore con codice zero e tag unibyte intermedi che definiscono la dimensione dei dati successivi. La vulnerabilità è causata dal fatto che nel codice di parsing dell'elenco il campo delle dimensioni viene copiato in una variabile con tipo intero firmato ("len = data[pos]"). Di conseguenza, nel caso in cui il campo contenga un valore con il bit più significativo impostato, questo valore verrà interpretato nell'operatore condizionale come un numero negativo e il controllo sulla dimensione massima consentita ("if (len > 63 || len + pos + 1 > datalen) {") non funzionerà, portando all'esecuzione della chiamata memcpy con un parametro in cui la dimensione dei dati copiati supera la dimensione del buffer.

Vulnerabilità remota nello stack IPv6 di OpenBSD
Vulnerabilità remota nello stack IPv6 di OpenBSD


Fonte: opennet.ru
Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster