uClibc ja uClibc-ng haavatavus, mis võimaldab DNS-i vahemälu võltsimist

Standardsetes C-teekides uClibc ja uClibc-ng, mida kasutatakse paljudes manustatud ja kaasaskantavates seadmetes, on tuvastatud haavatavus (CVE pole määratud), mis võimaldab sisestada DNS-i vahemällu fiktiivseid andmeid, mida saab kasutada IP-aadressi asendamiseks. suvalise domeeni vahemälus ja suunab päringud ümber ründaja serveri domeeni.

Probleem mõjutab erinevaid Linuxi püsivara ruuterite, pääsupunktide ja asjade Interneti seadmete jaoks, samuti manustatud Linuxi distributsioone, nagu OpenWRT ja Embedded Gentoo. Märgitakse, et haavatavus ilmneb paljude tootjate seadmetes (näiteks uClibc on kasutusel Linksys, Netgear ja Axis püsivaras), kuid kuna haavatavus jääb uClibc ja uClibc-ng puhul parandamata, siis üksikasjalik teave konkreetsete seadmete ja tootjate kohta, kelle tooteid kas probleem on saadaval. pole veel avalikustatud.

Haavatavuse põhjuseks on prognoositavate tehinguidentifikaatorite kasutamine DNS-päringute saatmise koodis. DNS-päringu identifitseerimisnumber valiti lihtsalt loenduri suurendamise teel ilma pordinumbrite täiendavat randomiseerimist kasutamata, mis võimaldas DNS-i vahemälu mürgitada fiktiivsete vastustega UDP-pakettide ennetava saatmise kaudu (vastus võetakse vastu, kui see saabus enne vastus pärisserverist ja sisaldab õiget ID-d). Erinevalt 2008. aastal välja pakutud Kaminsky meetodist ei pea tehingu identifikaatorit isegi ära arvama, kuna see on algselt ennustatav (väärtuseks määratakse algselt 1, mida iga päringuga suurendatakse, mitte ei valita juhuslikult).

uClibc ja uClibc-ng haavatavus, mis võimaldab DNS-i vahemälu võltsimist

Identifikaatori jõhkra jõu eest kaitsmiseks soovitab spetsifikatsioon lisaks kasutada DNS-i päringuid saatvate lähtevõrgu portide arvu juhuslikku jaotust, mis kompenseerib identifikaatori ebapiisavalt suurt suurust. Kui lubate fiktiivse vastuse genereerimiseks pordi randomiseerimise, peate lisaks 16-bitise identifikaatori valimisele valima ka võrgupordi numbri. uClibc ja uClibc-ng puhul ei olnud selline randomiseerimine selgesõnaliselt lubatud (bindi kutsumisel ei määratud juhuslikku allika UDP porti) ja selle kasutamine sõltus operatsioonisüsteemi sätetest.

Kui poti randomiseerimine on keelatud, märgitakse suurendatud päringu ID määramine triviaalseks ülesandeks. Kuid isegi kui kasutatakse randomiseerimist, peab ründaja ainult ära arvama võrgupordi vahemikust 32768–60999, mille jaoks nad saavad kasutada massilist samaaegset fiktiivsete vastuste saatmist erinevatesse võrguportidesse.

uClibc ja uClibc-ng haavatavus, mis võimaldab DNS-i vahemälu võltsimist

Probleem on leidnud kinnitust kõigis praegustes uClibc ja uClibc-ng väljaannetes, sealhulgas uClibc 0.9.33.2 ja uClibc-ng 1.0.40 uusimates versioonides. 2021. aasta septembris saadeti teave haavatavuse kohta CERT/CC-le paranduste koordineeritud ettevalmistamiseks. 2022. aasta jaanuaris jagati probleemi kohta andmeid enam kui 200 CERT/CC-ga koostööd tegeva tootjaga. Märtsis üritati eraldi ühendust võtta uClibc-ng projekti hooldajaga, kuid too vastas, et ei saa haavatavust iseseisvalt parandada ning soovitas probleemi kohta info avalikult avaldada, lootes saada abi uClibc-ng projekti väljatöötamisel. kogukonnalt parandada. Tootjatest teatas NETGEAR haavatavuse kõrvaldava värskenduse väljalaskmisest.

Allikas: opennet.ru

Lisa kommentaar