Im entwickelten OpenWrt-Projekt-Toolkit ASU (Attended SysUpgrade) wurden kritische Schwachstellen (CVE-2024-54143) entdeckt, die es ermöglichen, Build-Artefakte, die über den Dienst sysupgrade.openwrt.org oder Drittanbieter-ASU-Server verbreitet werden, zu kompromittieren und die Installation von vom Angreifer modifizierten Firmware-Images auf die Systeme der Benutzer zu erreichen, die für die Firmware-Updates den Modus „attended upgrade“ über die Weboberfläche selector.openwrt.org oder das Kommandozeilenwerkzeug attended.sysupgrade nutzen.
Für einen erfolgreichen Angriff reicht es dem Angreifer aus, eine Anfrage zur Erstellung des Builds an den ASU-Server zu senden (solche Anfragen kann jeder Benutzer ohne Authentifizierung stellen). Durch Manipulation mit einer speziell gestalteten Paketliste kann der Angreifer das Senden zuvor generierter bösartiger Images als Antwort auf legitime Build-Anfragen anderer Benutzer organisieren.
Der ASU-Dienst wird in OpenWrt verwendet, um Firmware-Updates zu erstellen und zu installieren, ohne dass vorhandene Einstellungen und vom Benutzer installierte Pakete verloren gehen. Über die Webschnittstelle oder die Befehlszeilenwerkzeuge sendet der Benutzer eine Anfrage zur Erstellung eines aktualisierten Firmware-Images und gibt die in seinem System installierten Pakete an. Nach einer gewissen Zeit erstellt der ASU-Server ein Image, das dem angeforderten Inhalt entspricht, wonach der Benutzer es herunterlädt und auf seinem Gerät installiert. Zusätzlich wird eine Option bereitgestellt, die es ermöglicht, die vorhandenen Einstellungen im aktualisierten Firmware-Image zu speichern.
Für die Bearbeitung der Benutzeranfragen ist der ASU-Server verantwortlich, der die automatische Erstellung von Firmware-Images mithilfe des ImageBuilder-Tools einleitet und auch einen Cache aus zuvor vorbereiteten Builds unterstützt. Wenn ein Benutzer ein Image anfordert, das bereits zuvor erstellt wurde Server und aktuell bleibt, gibt das System sofort das vorhandene Image aus dem Cache ohne Start des Erstellungsprozesses zurück.
Das Angriffsverhalten wurde durch zwei Schwachstellen ermöglicht:
- Eine Schwachstelle im Anfragebearbeiter build_reques.py des Imagebuilder-Toolkits ermöglicht es Angreifern, ihre eigenen Befehle in den Build-Prozess einzuschleusen, indem sie speziell formatierte Paketnamen übermitteln. Diese Schwachstelle entsteht durch das Fehlen einer angemessenen Überprüfung von Sonderzeichen in Paketnamen, bevor diese als Argumente für das Utility make verwendet werden. Durch Ausnutzung dieser Schwachstelle kann ein Angreifer schädliche Firmware-Images auf dem Server erstellen, die mit einem gültigen Build-Schlüssel signiert sind.
- Eine Schwachstelle in der Bibliothek util.py, die dadurch verursacht wird, dass die für die Überprüfung von bereits im Cache vorhandenen Firmware-Images verwendeten SHA-256-Hashes auf 12 Zeichen gekürzt wurden, was das Entropieniveau erheblich senkte und es ermöglichte, durch Kollisionen ein schädliches Image zu erstellen, dessen Hash mit dem eines legitimen Images übereinstimmt. In Kombination mit der Schwachstelle im Imagebuilder konnte das Problem mit den Hashes von Angreifern ausgenutzt werden, um den Cache des ASU-Servers zu „verunreinigen“ und schädliche Images darin zu platzieren, die auf Anfragen gewöhnlicher Benutzer ausgeliefert werden.
Die Änderungen, nach denen ein Angriff möglich war, wurden am 8. Juli vorgenommen. Das Problem wurde am 4. Dezember behoben. Für den Betrieb des ASU-Dienstes wurden separate Server, die sich nicht mit den Haupt-Bausystemen des Projekts überschneiden, vom OpenWrt Buildbot isoliert und haben keinen Zugang zu sensiblen Ressourcen wie SSH-Schlüsseln und Zertifikaten zur Erstellung digitaler Signaturen.
Es wird behauptet, dass die Entwickler von OpenWrt keine Anzeichen einer Kompromittierung der Infrastruktur des Projekts fanden, aber zur Vorsicht wurden die Systeme, auf denen die anfälligen Komponenten liefen, von Grund auf neu installiert. Das Problem betraf nicht die offiziellen Images, die über die Website downloads.openwrt.org verteilt werden, und bei der Analyse der Build-Protokolle wurden keine Anzeichen für die Absendung schädlicher Anfragen gefunden. Da auf den ASU-Servern eine automatische Bereinigung von Builds älter als 7 Tage erfolgt, war eine Prüfung älterer Builds nicht möglich.
Die Wahrscheinlichkeit, dass entdeckte Schwachstellen in der Praxis zur Verbreitung von schädlichen Images über die OpenWrt-Infrastruktur ausgenutzt werden, wird von Vertretern von OpenWrt als nahezu null eingeschätzt. Dennoch wird ASU-Nutzern empfohlen, auf ihren Geräten die OpenWrt-Firmware durch dieselbe Version zu ersetzen.
Quelle: opennet.ru
