Im Buildroot-System, das auf die Erstellung von bootfähigen Linux-Umgebungen für eingebettete Systeme abzielt, wurden sechs Sicherheitsanfälligkeiten entdeckt, die es ermöglichen, während der Abhörung des Transitverkehrs (MITM) Änderungen an den generierten Systemabbildern vorzunehmen oder die Ausführung von Code auf der Ebene des Build-Systems zu initiieren. Die Sicherheitsanfälligkeiten wurden in den Versionen Buildroot 2023.02.8, 2023.08.4 und 2023.11 behoben.
Die ersten fünf Sicherheitsanfälligkeiten (CVE-2023-45841, CVE-2023-45842, CVE-2023-45838, CVE-2023-45839, CVE-2023-45840) betreffen den Code zur Integritätsprüfung von Paketen anhand von Hashes. Die Probleme resultieren aus der Möglichkeit, HTTP zum Herunterladen von Dateien zu verwenden und dem Fehlen überprüfbarer Hash-Dateien für bestimmte Pakete, was es ermöglicht, den Inhalt dieser Pakete zu manipulieren, indem man in den Build-Verkehr eindringt Server (zum Beispiel, wenn ein Benutzer über ein vom Angreifer kontrolliertes drahtloses Netzwerk verbunden ist).
Insbesondere wurden die Pakete aufs und aufs-util über HTTP heruntergeladen und nicht auf Hashes geprüft. Hashes fehlten auch für die Pakete riscv64-elf-toolchain, versal-firmware und mxsldr, die standardmäßig über HTTPS heruntergeladen wurden, bei Problemen jedoch auf das Herunterladen ohne Verschlüsselung von dem Host http://sources.buildroot.net zurückfielen. Bei Fehlen von „.hash“-Dateien betrachtete das Buildroot-Toolkit die Prüfung als erfolgreich und verarbeitete die heruntergeladenen Pakete, einschließlich der Anwendung von Patches, die in den Paketen enthalten sind, und führte die Build-Skripte aus. Mit der Möglichkeit, heruntergeladene Pakete zu manipulieren, konnte der Angreifer eigene Patches oder Makefiles in diese integrieren, was es ermöglichte, Änderungen am resultierenden Bild oder an den Build-System-Skripten vorzunehmen und seinen eigenen Code auszuführen.
Die sechste Sicherheitsanfälligkeit (CVE-2023-43608) wird durch einen Fehler in der Implementierung der Funktionalität BR_NO_CHECK_HASH_FOR verursacht, die das Deaktivieren der Integritätsprüfung anhand von Hashes für bestimmte Pakete ermöglicht. Einige Pakete, wie der Linux-Kernel, U-Boot und versal-firmware, erlaubten den Download der neuesten Versionen, für die noch keine Hash-Überprüfungen erstellt wurden. Für diese Versionen wurde die Option BR_NO_CHECK_HASH_FOR verwendet, die die Hash-Überprüfung deaktivierte. Die Daten wurden über HTTPS heruntergeladen, aber im Falle eines Downloadfehlers wurde standardmäßig auf einen unverschlüsselten Zugriff auf source.buildroot.net zurückgegriffen über http://. Während einer MITM-Attacke konnte der Angreifer die Verbindung zum HTTPS-Server blockieren, sodass der Download auf http://sources.buildroot.net zurückfiel.
Quelle: opennet.ru
