In den Standard-C-Bibliotheken uClibc und uClibc-ng, die in vielen eingebetteten und tragbaren GerĂ€ten verwendet werden, wurde eine SicherheitsanfĂ€lligkeit festgestellt (CVE noch nicht zugewiesen), die es ermöglicht, gefĂ€lschte Daten in den DNS-Cache einzufĂŒgen, was genutzt werden kann, um die IP-Adresse einer beliebigen Domain im Cache zu Ă€ndern und Anfragen an die Domain auf den Server eines Angreifers umzuleiten.
Das Problem betrifft verschiedene Linux-Firmware fĂŒr Router, Zugangspunkte und IoT-GerĂ€te sowie Linux-Distributionen fĂŒr eingebettete Systeme wie OpenWRT und Embedded Gentoo. Es wird festgestellt, dass die SicherheitsanfĂ€lligkeit in GerĂ€ten vieler Hersteller auftritt (zum Beispiel wird uClibc in den Firmware-Versionen von Linksys, Netgear und Axis verwendet), aber da die Schwachstelle in uClibc und uClibc-ng ungepatcht bleibt, sind detaillierte Informationen ĂŒber spezifische GerĂ€te und Hersteller, die von dem Problem betroffen sind, noch nicht bekanntgegeben worden.
Die SicherheitsanfÀlligkeit wird durch die Verwendung vorhersehbarer Transaktionsidentifikatoren im Code zum Senden von DNS-Anfragen verursacht. Die Identifikationsnummer der DNS-Anfrage wurde einfach durch Erhöhen eines ZÀhlers gewÀhlt, ohne zusÀtzliche Randomisierung der Portnummern anzuwenden, was es ermöglichte, den DNS-Cache durch vorsorgliches Senden von UDP-Paketen mit gefÀlschten Antworten zu vergiften (die Antwort wird akzeptiert, wenn sie vor der Antwort des echten Servers eintrifft und die korrekte ID enthÀlt). Server Im Gegensatz zur Methode von Kaminsky, die 2008 vorgeschlagen wurde, muss der Transaktionsidentifikator nicht geraten werden, da er von Anfang an vorhersehbar ist (anfangs wird der Wert 1 festgelegt, der bei jeder Anfrage erhöht wird und nicht zufÀllig ausgewÀhlt wird).

In der Spezifikation zum Schutz vor dem Raten der ID wird empfohlen, zusĂ€tzlich eine zufĂ€llige Verteilung der Quellnetzwerkportnummern anzuwenden, von denen die DNS-Anfragen gesendet werden, um den nicht ausreichend groĂen Identifikator auszugleichen. Bei Aktivierung der Port-Randomisierung zur Bildung einer gefĂ€lschten Antwort muss neben dem Raten des 16-Bit-Identifikators auch die Netzwerkportnummer erraten werden. In uClibc und uClibc-ng wurde eine solche Randomisierung nicht ausdrĂŒcklich aktiviert (bei der Bind()-Aufruf wurde kein zufĂ€lliger Ausgangs-UDP-Port angegeben) und ihre Anwendung hing von den Einstellungen des Betriebssystems ab.
Bei der Deaktivierung der ZufĂ€lligkeit wird die Bestimmung der inkrementellen Anforderungs-ID als triviale Aufgabe betrachtet. Selbst bei Anwendung der ZufĂ€lligkeit muss der Angreifer nur den Netzwerkport aus dem Bereich von 32768 bis 60999 erraten, wofĂŒr er eine massenhafte gleichzeitige Sendung gefĂ€lschter Antworten ĂŒber verschiedene Netzwerkports nutzen kann.

Das Problem wurde in allen aktuellen Versionen von uClibc und uClibc-ng bestĂ€tigt, einschlieĂlich der neuesten Versionen uClibc 0.9.33.2 und uClibc-ng 1.0.40. Im September 2021 wurde die Information ĂŒber die Schwachstelle an CERT/CC gesendet, um eine koordinierte Vorbereitung von Korrekturen zu ermöglichen. Im Januar 2022 wurden die Informationen ĂŒber das Problem an ĂŒber 200 Hersteller weitergegeben, die mit CERT/CC zusammenarbeiten. Im MĂ€rz wurde versucht, separat Kontakt mit dem Wartungsteam des uClibc-ng-Projekts aufzunehmen, jedoch antworteten sie, dass sie nicht in der Lage sind, die Schwachstelle eigenstĂ€ndig zu beheben, und empfahlen, die Informationen ĂŒber das Problem öffentlich preiszugeben, in der Hoffnung, UnterstĂŒtzung von der Community bei der Entwicklung eines Patches zu erhalten. Von den Herstellern kĂŒndigte NETGEAR eine Aktualisierung zur Behebung der Schwachstelle an.
Quelle: opennet.ru
