In den Standard-C-Bibliotheken uClibc und uClibc-ng, die in vielen eingebetteten und tragbaren GerĂ€ten eingesetzt werden, wurde eine SicherheitsanfĂ€lligkeit (CVE nicht zugewiesen) entdeckt. Diese ermöglicht es, falsche Daten in den DNS-Cache einzufĂŒgen, was zur Manipulation von IP-Adressen beliebiger Domains im Cache und zur Umleitung von Anfragen an diese Domains zu einem Angreifer-Server verwendet werden kann.
Das Problem betrifft verschiedene Linux-Firmware fĂŒr Router, Access Points und IoT-GerĂ€te sowie Linux-Distributionen fĂŒr eingebettete Systeme wie OpenWRT und Embedded Gentoo. Es wird berichtet, dass die SicherheitsanfĂ€lligkeit bei GerĂ€ten vieler Hersteller auftritt (zum Beispiel wird uClibc in Firmwares von Linksys, Netgear und Axis eingesetzt), jedoch bleibt die AnfĂ€lligkeit in uClibc und uClibc-ng unbehoben. Detaillierte Informationen zu spezifischen GerĂ€ten und Herstellern, deren Produkte betroffen sind, werden momentan noch nicht veröffentlicht.
Die Schwachstelle entsteht durch die Verwendung vorhersehbarer Transaktions-IDs im Code zur Versendung von DNS-Anfragen. Die ID der DNS-Anfrage wird durch einfaches HochzÀhlen eines ZÀhlers gewÀhlt, ohne zusÀtzliche Randomisierung der Portnummern zu verwenden. Dadurch kann die DNS-Cache-Vergiftung durch vorausschauendes Senden von UDP-Paketen mit gefÀlschten Antworten erreicht werden (die Antwort wird akzeptiert, wenn sie vor der tatsÀchlichen Antwort eintrifft und eine korrekte ID enthÀlt). Server Im Gegensatz zu der von Kaminski im Jahr 2008 vorgeschlagenen Methode muss die Transaktions-ID nicht geraten werden, da sie von Anfang an vorhersehbar ist (zu Beginn wird der Wert 1 gesetzt, der bei jeder Anfrage erhöht wird, anstatt zufÀllig ausgewÀhlt zu werden).

In der Spezifikation zur Identifikatorschutz wird empfohlen, zusĂ€tzlich eine zufĂ€llige Verteilung der Ausgangsnetzwerkports anzuwenden, von denen die DNS-Anfragen gesendet werden. Dies kompensiert die unzureichende GröĂe des Identifikators. Bei Aktivierung der Port-Randomisierung zur Generierung falscher Antworten muss neben dem 16-Bit-Identifikator auch die Nummer des Netzwerkports ausgewĂ€hlt werden. In uClibc und uClibc-ng war eine solche Randomisierung nicht explizit aktiviert (beim Aufruf von bind wurde kein zufĂ€lliger Ausgangs-UDP-Port angegeben), und die Anwendung hing von den Betriebssystemeinstellungen ab.
Bei Deaktivierung der Port-Randomisierung wird die Bestimmung des inkrementierbaren Identifikators als triviale Aufgabe angesehen. Selbst wenn Randomisierung angewendet wird, muss der Angreifer lediglich den Netzwerkport im Bereich von 32768â60999 erraten, wozu er massierte gleichzeitige gesendete falsche 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 zur koordinierten Vorbereitung von Korrekturen ĂŒbermittelt. Im Januar 2022 wurden die Daten ĂŒber das Problem an mehr als 200 Hersteller weitergegeben, die mit CERT/CC zusammenarbeiten. Im MĂ€rz wurde versucht, den Entwickler des uClibc-ng-Projekts direkt zu kontaktieren, aber er antwortete, dass er nicht in der Lage sei, die Schwachstelle selbst zu beheben, und empfahl, Informationen ĂŒber das Problem öffentlich preiszugeben, in der Hoffnung, UnterstĂŒtzung von der Community bei der Entwicklung eines Patches zu erhalten. Von den Herstellern hat NETGEAR die Veröffentlichung eines Updates zur Behebung der Schwachstelle angekĂŒndigt.
Quelle: opennet.ru
