For et par dage siden blev nyheden frigivet i C-standardbibliotekerne uClibc og uClibc-ng, brugt i mange indlejrede og bærbare enheder, en sårbarhed er blevet identificeret (med CVE endnu ikke tildelt), som tillader substitution af dummy-data i DNS-cachen, som kan bruges til at forfalske IP-adressen på et vilkårligt domæne i cachen og omdirigere anmodninger til domænet til angriberens server.
Om problemet nævnes, at dette påvirker forskellige Linux-firmware til routere, adgangspunkter og IoT-enheder, samt indlejrede Linux-distributioner som OpenWRT og Embedded Gentoo.
Om sårbarhed
Sårbarhed skyldes brugen af forudsigelige transaktionsidentifikatorer i koden til at sende forespørgsler af DNS. DNS-forespørgsels-id'et blev valgt ved blot at øge tælleren uden yderligere randomisering af portnumrene, hvilket gjort det muligt at forgifte DNS-cachen ved forebyggende at sende UDP-pakker med falske svar (svaret vil blive accepteret, hvis det ankommer før svaret fra den rigtige server og inkluderer den korrekte identifikation).
I modsætning til Kaminsky-metoden, der blev foreslået i 2008, er det ikke engang nødvendigt at gætte transaktions-id'et, da det oprindeligt er forudsigeligt (i første omgang er det sat til 1, som stiger med hver anmodning og ikke er tilfældigt udvalgt).
For at beskytte dig selv mod ID-gætning, specifikationen anbefaler endvidere brugen af en tilfældig fordeling af netværksportnumre oprindelse, hvorfra DNS-forespørgslerne sendes, hvilket kompenserer for den utilstrækkelige størrelse af ID'et.
Når portrandomisering er aktiveret, for at danne et dummy-svar, er det ud over at vælge en 16-bit identifikator også nødvendigt at vælge netværksportnummeret. I uClibc og uClibc-ng var en sådan randomisering ikke eksplicit aktiveret (når bind blev kaldt, blev en tilfældig kilde UDP-port ikke angivet), og dens implementering afhang af operativsystemets konfiguration.
Når portrandomisering er deaktiveret, at bestemme hvilket anmodnings-id, der skal øges, er markeret som en triviel opgave. Men selv i tilfælde af randomisering behøver angriberen kun at gætte netværksporten fra området 32768-60999, hvortil han kan bruge massiv samtidig afsendelse af dummy-svar på forskellige netværksporte.
Problemet er blevet bekræftet i alle nuværende versioner af uClibc og uClibc-ng, inklusive de seneste versioner af uClibc 0.9.33.2 og uClibc-ng 1.0.40.
"Det er vigtigt at bemærke, at en sårbarhed, der påvirker et standard C-bibliotek, kan være ret kompleks," skrev holdet i et blogindlæg i denne uge.
"Ikke alene ville der være hundreder eller tusinder af opkald til den sårbare funktion på flere punkter i et enkelt program, men sårbarheden ville påvirke et ubestemt antal andre multi-leverandør programmer konfigureret til at bruge det bibliotek."
I september 2021 blev der sendt information om sårbarheden til CERT/CC for koordineret array-forberedelse. I januar 2022, problemet blev delt med mere end 200 producenter tilknyttet CERT/CC.
I marts var der et forsøg på separat at kontakte vedligeholderen af uClibc-ng-projektet, men han svarede, at han ikke selv kunne rette op på sårbarheden og anbefalede offentlig offentliggørelse af oplysninger om problemet, i håb om at få hjælp til at udvikle en løsning. samfundet. Fra producenterne annoncerede NETGEAR udgivelsen af en opdatering med fjernelse af sårbarheden.
Det er vigtigt at bemærke, at en sårbarhed, der påvirker et standard C-bibliotek, kan være ret kompleks. Ikke alene ville der være hundredvis eller tusindvis af opkald til den sårbare funktion på flere punkter i et enkelt program, men sårbarheden ville påvirke et ubestemt antal andre programmer fra flere leverandører, der er konfigureret til at bruge det pågældende bibliotek.
Det bemærkes, at sårbarheden viser sig i enheder fra mange producenter (f.eks. bruges uClibc i firmware fra Linksys, Netgear og Axis), men da sårbarheden forbliver upatchet i uClibc og uClibc-ng, detaljeret information om enheder og specifikke producenter, i hvis produkter der er et problem, indtil de afsløres.
Endelig hvis du er interesseret i at vide mere om det, kan du kontrollere detaljerne I det følgende link.