I de standard C-biblioteken uClibc och uClibc-ng, som anvÀnds i mÄnga inbyggda och portabla enheter, har en sÄrbarhet identifierats (CVE ej tilldelad) som gör det möjligt att injicera falska data i DNS-cachen. Detta kan utnyttjas för att manipulera IP-adressen för en godtycklig domÀn i cachen och omdirigera förfrÄgningar till domÀnen till en angripares server.
Problemet berör olika Linux-firmware för routrar, accesspunkter och IoT-enheter, samt Linux-distributioner för inbyggda system som OpenWRT och Embedded Gentoo. Det rapporteras att sÄrbarheten upptrÀder i enheter frÄn mÄnga tillverkare (till exempel anvÀnds uClibc i firmware frÄn Linksys, Netgear och Axis), men eftersom sÄrbarheten i uClibc och uClibc-ng inte Àr ÄtgÀrdad, avslöjas Ànnu inte detaljer om specifika enheter och tillverkare vars produkter innehÄller problemet.
SÄrbarheten orsakas av att förutsÀgbara transaktions-ID:n anvÀnds i koden för att skicka DNS-förfrÄgningar. DNS-förfrÄgan identifierades genom att enkelt öka en rÀknare utan att tillÀmpa ytterligare randomisering av portnummer, vilket möjliggjorde cacheförgiftning av DNS genom förhandsladdning av UDP-paket med falska svar (svaret accepteras om det anlÀnder före det verkliga svaret och inkluderar rÀtt ID). servern Till skillnad frÄn den metod som föreslogs av Kaminsky 2008, behöver identifikationsnumret inte ens gissas, eftersom det frÄn början Àr förutsÀgbart (det sÀtts initialt till vÀrdet 1, vilket ökas med varje förfrÄgan, istÀllet för att vÀljas slumpmÀssigt).

I specifikationen för att skydda mot gissningar av identifierare rekommenderas det att dessutom tillÀmpa slumpmÀssig distribution av de kÀll-nÀtverksportnummer frÄn vilka DNS-förfrÄgningar skickas, vilket kompenserar för den otillrÀckligt stora storleken pÄ identifieraren. NÀr portarna randomiseras för att skapa ett falskt svar mÄste man förutom den 16-bitars identifieraren ocksÄ gissa nÀtverksportnumret. I uClibc och uClibc-ng ingick sÄdan randomisering inte explicit (vid anrop av bind angavs inte nÄgot slumpmÀssigt kÀll-UDP-port) och dess tillÀmpning berodde pÄ operativsystemets instÀllningar.
NĂ€r slumpgenerering av sessioner stĂ€ngs av, markeras bestĂ€mningen av det inkrementella identifieringsnumret som en trivial uppgift. Men Ă€ven om slumpgenerering tillĂ€mpas, behöver angriparen bara gissa nĂ€tverksporten frĂ„n intervallet 32768â60999, vilket kan göras genom att massivt skicka falska svar pĂ„ olika nĂ€tverksportar.

Problemet har bekrÀftats i alla aktuella versioner av uClibc och uClibc-ng, inklusive de senaste versionerna av uClibc 0.9.33.2 och uClibc-ng 1.0.40. I september 2021 skickades information om sÄrbarheten till CERT/CC för samordnad beredning av patchar. I januari 2022 överfördes uppgifter om problemet till mer Àn 200 tillverkare som samarbetar med CERT/CC. I mars gjordes ett försök att kontakta projektet uClibc-ng direkt, men de svarade att de inte kunde ÄtgÀrda sÄrbarheten sjÀlva och rekommenderade att informationen om problemet offentliggjordes i hopp om att fÄ hjÀlp frÄn gemenskapen för att utveckla en lösning. NETGEAR var en av tillverkarna som meddelade att de slÀpper en uppdatering för att ÄtgÀrda sÄrbarheten.
KĂ€lla: opennet.ru
