Standardset uClibc ja uClibc-ng C-raamatukogudes, mida kasutatakse paljudes sisseehitatud ja portatiivsetes seadmetes, on tuvastatud haavatavus (CVE ei ole määratud), mis võimaldab valeandmeid DNS-i vahemällu sisestada, võimaldades suunata mõne domeeni IP-aadressi vahemälu ründaja serverile.
Probleem mõjutab erinevaid Linuxi püsivara marsruuterite, juurdepääsupunktide ja asjade interneti seadmete jaoks, samuti sisseehitatud süsteemide Linuxi jaotusi, nagu OpenWRT ja Embedded Gentoo. On märgatud, et haavatavus avaldub paljude tootjate seadmetes (nt uClibc kasutatakse Linksysi, Netgeari ja Axis'e püsivara versioonides), kuid kuna uClibc ja uClibc-ng haavatavus jääb lahendamata, ei avaldata hetkel üksikasjalikke teavet konkreetselt seadmete ja tootjate kohta, mille tooted seda probleemi sisaldavad.
Haavatavus tuleneb DNS-päringute saatmise koodis ettearvatavate tehinguidentifikaatorite kasutamisest. DNS-päringu identifikaator valiti lihtsalt loenduri suurendamise teel, ilma et portide numbrite lisarandomiseerimist kasutataks, mis võimaldas DNS-i vahemälu ründamist vale vastustega UDP-pakettide ennetava saatmise kaudu (vastus võetakse vastu, kui see saabus enne reaalset vastust ja sisaldab õiget ID-d). сервера Erinevalt 2008. aastal Kaminski poolt ette pandud meetodist ei ole tehinguidentifikaatori arvamine vajalik, kuna see on algselt ettearvatav (alguses seotakse väärtus 1, mida iga päringu korral suurendatakse, mitte ei valita juhuslikult).

Spetsifikatsioonis identifikaatori talitlushäirete vastu kaitsmiseks soovitatakse lisaks rakendada juhuslikku algsete võrguportide numbrite jaotust, millest DNS-päringud saadetakse, et kompenseerida identifikaatori ebapiisavat suurust. Portsallika juhuslikkuse lubamisel vale vastuse genereerimisel tuleb välja valida mitte ainult 16-bitine identifikaator, vaid ka võrguport. uClibc ja uClibc-ng ei sisaldanud selgesõnaliselt sellist juhuslikkust (bind'i kutsumisel ei määratud juhuslikku lähtuva UDP porta) ning selle rakendamine sõltus operatsioonisüsteemi seadistustest.
Portsallika rajamise väljajätmise korral peetakse päringu inkrementeeritava identifikaatori määramist triviaalset ülesannet. Kuid isegi juhuslikkuse rakendamise korral peab ründaja vaid ära arvama võrguporti vahemikus 32768–60999, mille jaoks saab kasutada ulatuslikku vale vastuste simultaanse saatmise meetodit erinevatesse võrguportidesse.

Probleem on kinnitatud kõigis uClibc ja uClibc-ng viimastes versioonides, sealhulgas uClibc 0.9.33.2 ja uClibc-ng 1.0.40. Septembris 2021 saadeti haavatavuse teave CERT/CC-le kooskõlastatud lahenduste ettevalmistamiseks. Jaanuaris 2022 edastati probleemiga seotud andmed rohkem kui 200 tootjale, kes teevad koostööd CERT/CC-ga. Märtsis prooviti eraldi kontakteeruda uClibc-ng projekti arendajaga, kuid ta vastas, et ei suuda haavatavust iseseisvalt lahendada ja soovitas teavet probleemist avalikult levitada, lootes saada kogukonnalt abi lahenduse väljatöötamisel. Tootjatest teatas NETGEAR haavatavuse lahendusega värskenduse väljalaskmisest.
Allikas: opennet.ru
