Chyby vo FreeBSD, IPnet a Nucleus NET súvisiace s chybami pri implementácii kompresie DNS

Výskumné skupiny Forescout Research Labs a JSOF Research zverejnili výsledky spoločnej štúdie bezpečnosti rôznych implementácií kompresnej schémy používanej na balenie duplicitných názvov v správach DNS, mDNS, DHCP a IPv6 RA (zabalenie duplicitných častí domény do správ ktoré obsahujú viacero mien). Počas prác bolo identifikovaných 9 zraniteľností, ktoré sú zhrnuté pod kódovým označením NAME:WRECK.

Problémy boli identifikované vo FreeBSD, ako aj v sieťových podsystémoch IPnet, Nucleus NET a NetX, ktoré sa rozšírili v operačných systémoch VxWorks, Nucleus a ThreadX v reálnom čase používaných v automatizačných zariadeniach, úložiskách, zdravotníckych zariadeniach, avionike, tlačiarňach. a spotrebnej elektroniky. Odhaduje sa, že najmenej 100 miliónov zariadení je ovplyvnených zraniteľnosťami.

  • Zraniteľnosť vo FreeBSD (CVE-2020-7461) umožnila zorganizovať vykonávanie jeho kódu odoslaním špeciálne navrhnutého DHCP paketu útočníkom umiestneným v rovnakej lokálnej sieti ako obeť, ktorého spracovanie viedlo zraniteľný DHCP klient. k pretečeniu vyrovnávacej pamäte. Problém bol zmiernený skutočnosťou, že proces dhclient, v ktorom bola prítomná zraniteľnosť, bežal s resetovacími privilégiami v izolovanom prostredí Capsicum, čo si vyžadovalo identifikáciu inej zraniteľnosti na ukončenie.

    Podstata chyby je v nesprávnej kontrole parametrov v pakete vrátenom serverom DHCP s voľbou DHCP 119, ktorá vám umožňuje preniesť zoznam „vyhľadávania domén“ do resolvera. Nesprávny výpočet veľkosti vyrovnávacej pamäte potrebnej na umiestnenie nerozbalených názvov domén viedol k tomu, že informácie kontrolované útočníkom boli zapísané mimo pridelenej vyrovnávacej pamäte. Vo FreeBSD bol problém opravený v septembri minulého roka. Problém je možné zneužiť iba vtedy, ak máte prístup k lokálnej sieti.

  • Zraniteľnosť vo vstavanom sieťovom zásobníku IPnet používanom v RTOS VxWorks umožňuje potenciálne spustenie kódu na strane klienta DNS v dôsledku nesprávneho spracovania kompresie správ DNS. Ako sa ukázalo, táto zraniteľnosť bola prvýkrát identifikovaná spoločnosťou Exodus v roku 2016, ale nikdy nebola opravená. Nová požiadavka adresovaná Wind River tiež zostala bez odpovede a zariadenia IPnet zostávajú zraniteľné.
  • V zásobníku Nucleus NET TCP/IP podporovanom spoločnosťou Siemens bolo identifikovaných šesť zraniteľností, z ktorých dve by mohli viesť k vzdialenému spusteniu kódu a štyri by mohli viesť k odmietnutiu služby. Prvý nebezpečný problém súvisí s chybou pri dekomprimovaní komprimovaných správ DNS a druhý s nesprávnou analýzou názvov domén. Oba problémy vedú k pretečeniu vyrovnávacej pamäte pri spracovávaní špeciálne formátovaných odpovedí DNS.

    Na zneužitie zraniteľností musí útočník jednoducho poslať špeciálne navrhnutú odpoveď na akúkoľvek legitímnu požiadavku odoslanú zo zraniteľného zariadenia, napríklad vykonaním útoku MTIM a zasahovaním do prevádzky medzi serverom DNS a obeťou. Ak má útočník prístup k lokálnej sieti, môže spustiť DNS server, ktorý sa pokúsi zaútočiť na problematické zariadenia odosielaním požiadaviek mDNS v režime vysielania.

  • Zraniteľnosť v sieťovom zásobníku NetX (Azure RTOS NetX), vyvinutom pre ThreadX RTOS a otvorená v roku 2019 po prevzatí spoločnosťou Microsoft, bola obmedzená na odmietnutie služby. Problém je spôsobený chybou pri analýze komprimovaných správ DNS v implementácii resolvera.

Z testovaných sieťových zásobníkov, v ktorých sa nenašli žiadne zraniteľnosti súvisiace s kompresiou opakovaných údajov v správach DNS, boli pomenované tieto projekty: lwIP, Nut/Net, Zephyr, uC/TCP-IP, uC/TCP-IP, FreeRTOS+TCP , OpenThread a FNET. Navyše prvé dva (Nut/Net a lwIP) vôbec nepodporujú kompresiu v DNS správach, zatiaľ čo ostatné implementujú túto operáciu bez chýb. Okrem toho je potrebné poznamenať, že tí istí výskumníci už predtým identifikovali podobné zraniteľné miesta v zásobníkoch Treck, uIP a PicoTCP.

Zdroj: opennet.ru

Pridať komentár