Sårbarheter i FreeBSD, IPnet og Nucleus NET relatert til feil i implementeringen av DNS-komprimering

Forskningsgruppene Forescout Research Labs og JSOF Research har publisert resultatene av en felles studie av sikkerheten til ulike implementeringer av komprimeringsskjemaet som brukes til å pakke dupliserte navn i DNS-, mDNS-, DHCP- og IPv6 RA-meldinger (pakker dupliserte domenedeler i meldinger som inkluderer flere navn). Under arbeidet ble det identifisert 9 sårbarheter, som er oppsummert under kodenavnet NAME:WRECK.

Problemer har blitt identifisert i FreeBSD, så vel som i nettverksundersystemene IPnet, Nucleus NET og NetX, som har blitt utbredt i VxWorks, Nucleus og ThreadX sanntidsoperativsystemer som brukes i automatiseringsenheter, lagring, medisinsk utstyr, flyelektronikk, skrivere og forbrukerelektronikk. Det er anslått at minst 100 millioner enheter er berørt av sårbarhetene.

  • En sårbarhet i FreeBSD (CVE-2020-7461) gjorde det mulig å organisere kjøringen av koden ved å sende en spesialdesignet DHCP-pakke til angripere lokalisert på samme lokale nettverk som offeret, og behandlingen av disse av en sårbar DHCP-klient ledet til et bufferoverløp. Problemet ble dempet av det faktum at dhclient-prosessen der sårbarheten var til stede, kjørte med tilbakestillingsprivilegier i en Capsicum-sandkasse, som krevde identifisering av en annen sårbarhet for å avslutte.

    Essensen av feilen er feilkontroll av parametere, i pakken returnert av DHCP-serveren med DHCP-alternativ 119, som lar deg overføre "domenesøk"-listen til resolveren. Feil beregning av bufferstørrelsen som kreves for å imøtekomme upakkede domenenavn førte til at angriperkontrollert informasjon ble skrevet utover den tildelte bufferen. I FreeBSD ble problemet løst tilbake i september i fjor. Problemet kan bare utnyttes hvis du har tilgang til det lokale nettverket.

  • En sårbarhet i den innebygde IPnet-nettverksstakken som brukes i RTOS VxWorks tillater potensiell kodekjøring på DNS-klientsiden på grunn av feil håndtering av DNS-meldingskomprimering. Som det viste seg, ble denne sårbarheten først identifisert av Exodus tilbake i 2016, men ble aldri fikset. En ny forespørsel til Wind River ble også ubesvart, og IPnet-enheter er fortsatt sårbare.
  • Seks sårbarheter ble identifisert i Nucleus NET TCP/IP-stakken, støttet av Siemens, hvorav to kan føre til ekstern kjøring av kode, og fire kan føre til tjenestenekt. Det første farlige problemet er relatert til en feil ved dekomprimering av komprimerte DNS-meldinger, og det andre er relatert til feil parsing av domenenavnetiketter. Begge problemene resulterer i bufferoverflyt ved behandling av spesialformaterte DNS-svar.

    For å utnytte sårbarheter trenger en angriper bare å sende et spesialdesignet svar på enhver legitim forespørsel sendt fra en sårbar enhet, for eksempel ved å utføre et MTIM-angrep og forstyrre trafikken mellom DNS-serveren og offeret. Hvis angriperen har tilgang til det lokale nettverket, kan han starte en DNS-server som forsøker å angripe problematiske enheter ved å sende mDNS-forespørsler i kringkastingsmodus.

  • Sårbarheten i NetX-nettverksstakken (Azure RTOS NetX), utviklet for ThreadX RTOS og åpnet i 2019 etter å ha blitt overtatt av Microsoft, var begrenset til tjenestenekt. Problemet er forårsaket av en feil i parsing av komprimerte DNS-meldinger i resolverimplementeringen.

Av de testede nettverksstakkene der det ikke ble funnet noen sårbarheter knyttet til komprimering av gjentatte data i DNS-meldinger, ble følgende prosjekter navngitt: lwIP, Nut/Net, Zephyr, uC/TCP-IP, uC/TCP-IP, FreeRTOS+TCP , OpenThread og FNET. Dessuten støtter ikke de to første (Nut/Net og lwIP) komprimering i DNS-meldinger i det hele tatt, mens de andre implementerer denne operasjonen uten feil. I tillegg bemerkes det at tidligere hadde de samme forskerne allerede identifisert lignende sårbarheter i Treck-, uIP- og PicoTCP-stakkene.

Kilde: opennet.ru

Legg til en kommentar