Vulnerabilità in FreeBSD, IPnet e Nucleus NET legate a errori nell'implementazione della compressione DNS

I gruppi di ricerca Forescout Research Labs e JSOF Research hanno pubblicato i risultati di uno studio congiunto sulla sicurezza di varie implementazioni dello schema di compressione utilizzato per comprimere nomi duplicati nei messaggi DNS, mDNS, DHCP e IPv6 RA (confezionando parti di dominio duplicate nei messaggi che includono più nomi). Nel corso dei lavori sono state individuate 9 vulnerabilità riassunte sotto il nome in codice NAME:WRECK.

Sono stati identificati problemi in FreeBSD, così come nei sottosistemi di rete IPnet, Nucleus NET e NetX, che si sono diffusi nei sistemi operativi in ​​tempo reale VxWorks, Nucleus e ThreadX utilizzati nei dispositivi di automazione, archiviazione, dispositivi medici, avionica, stampanti ed elettronica di consumo. Si stima che almeno 100 milioni di dispositivi siano interessati da queste vulnerabilità.

  • Una vulnerabilità in FreeBSD (CVE-2020-7461) ha permesso di organizzare l'esecuzione del suo codice inviando un pacchetto DHCP appositamente progettato agli aggressori situati sulla stessa rete locale della vittima, la cui elaborazione da parte di un client DHCP vulnerabile ha portato ad un buffer overflow. Il problema è stato mitigato dal fatto che il processo dhclient in cui era presente la vulnerabilità era in esecuzione con privilegi di ripristino in un ambiente Capsicum isolato, che richiedeva l'identificazione di un'altra vulnerabilità per uscire.

    La sostanza dell'errore sta nell'errato controllo dei parametri, nel pacchetto restituito dal server DHCP con l'opzione DHCP 119, che permette di trasferire la lista “ricerca domini” al risolutore. Il calcolo errato della dimensione del buffer necessaria per accogliere i nomi di dominio non compressi ha portato alla scrittura di informazioni controllate dagli aggressori oltre il buffer allocato. In FreeBSD, il problema è stato risolto a settembre dello scorso anno. Il problema può essere sfruttato solo se si ha accesso alla rete locale.

  • Una vulnerabilità nello stack di rete IPnet incorporato utilizzato in RTOS VxWorks consente la potenziale esecuzione di codice sul lato client DNS a causa della gestione impropria della compressione dei messaggi DNS. A quanto pare, questa vulnerabilità è stata identificata per la prima volta da Exodus nel 2016, ma non è mai stata risolta. Anche una nuova richiesta a Wind River è rimasta senza risposta e i dispositivi IPnet rimangono vulnerabili.
  • Sono state identificate sei vulnerabilità nello stack Nucleus NET TCP/IP, supportato da Siemens, di cui due potrebbero portare all'esecuzione di codice in modalità remota e quattro potrebbero portare alla negazione del servizio. Il primo problema pericoloso è legato ad un errore durante la decompressione dei messaggi DNS compressi, il secondo è legato all'analisi errata delle etichette dei nomi di dominio. Entrambi i problemi provocano un overflow del buffer durante l'elaborazione di risposte DNS appositamente formattate.

    Per sfruttare le vulnerabilità, un utente malintenzionato deve semplicemente inviare una risposta appositamente progettata a qualsiasi richiesta legittima inviata da un dispositivo vulnerabile, ad esempio conducendo un attacco MTIM e interferendo con il traffico tra il server DNS e la vittima. Se l'aggressore ha accesso alla rete locale, può avviare un server DNS che tenta di attaccare i dispositivi problematici inviando richieste mDNS in modalità broadcast.

  • La vulnerabilità nello stack di rete NetX (Azure RTOS NetX), sviluppata per ThreadX RTOS e aperta nel 2019 dopo essere stata rilevata da Microsoft, era limitata al Denial of Service. Il problema è causato da un errore nell'analisi dei messaggi DNS compressi nell'implementazione del risolutore.

Degli stack di rete testati in cui non sono state riscontrate vulnerabilità relative alla compressione di dati ripetuti nei messaggi DNS, sono stati nominati i seguenti progetti: lwIP, Nut/Net, Zephyr, uC/TCP-IP, uC/TCP-IP, FreeRTOS+TCP , OpenThread e FNET. Inoltre i primi due (Nut/Net e lwIP) non supportano affatto la compressione dei messaggi DNS, mentre gli altri implementano questa operazione senza errori. Inoltre, si segnala che in precedenza gli stessi ricercatori avevano già individuato vulnerabilità simili negli stack Treck, uIP e PicoTCP.

Fonte: opennet.ru

Aggiungi un commento