Sicherheitsanfälligkeiten in Buildroot, die es durch eine MITM-Attacke ermöglichen, Code auf dem Build-Server auszuführen.

Im Buildroot-System, das auf die Erstellung von bootfähigen Linux-Umgebungen für eingebettete Systeme abzielt, wurden sechs Sicherheitsanfälligkeiten entdeckt, die es während der Abhörung von Transit-Traffic (MITM) ermöglichen, Änderungen an den generierten Systembildern vorzunehmen oder die Ausführung von Code auf der Ebene des Build-Systems zu organisieren. 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 Überprüfung der Integrität von Paketen durch Hash-Werte. Die Probleme ergeben sich aus der Möglichkeit, HTTP zum Herunterladen von Dateien zu verwenden und dem Fehlen von Überprüfungs-Hash-Dateien für einige Pakete, was es ermöglicht, den Inhalt dieser Pakete zu manipulieren, während man sich in den Traffic des Builds einmischt. Server (zum Beispiel, wenn der Benutzer über ein vom Angreifer kontrolliertes drahtloses Netzwerk verbunden ist).

Insbesondere wurden die Pakete aufs und aufs-util über HTTP geladen und nicht durch Hash-Werte überprüft. Hashes fehlten auch für die Pakete riscv64-elf-toolchain, versal-firmware und mxsldr, die standardmäßig über HTTPS geladen wurden, aber im Falle von Problemen auf unverschlüsselte Downloads von http://sources.buildroot.net zurückfielen. In Abwesenheit von „.hash“-Dateien betrachtete das Buildroot-Toolkit die Überprüfung als erfolgreich und verarbeitete die geladenen Pakete, einschließlich der Anwendung von in Paketen enthaltenen Patches und dem Ausführen von Build-Skripten. Mit der Möglichkeit, die geladenen Pakete zu manipulieren, konnte der Angreifer eigene Patches oder Makefile-Bau-Dateien hinzufügen, wodurch Änderungen am resultierenden Bild oder den Build-System-Skripten vorgenommen und sein Code ausgeführt werden konnte.

Die sechste Sicherheitsanfälligkeit (CVE-2023-43608) wird durch einen Fehler in der Implementierung der Funktionalität BR_NO_CHECK_HASH_FOR verursacht, die es ermöglicht, die Integritätsprüfung durch Hash-Werte für selektive Pakete zu deaktivieren. Einige Pakete, wie der Linux-Kernel, U-Boot und versal-firmware, ermöglichten das Herunterladen der neuesten Versionen, für die noch keine Überprüfungs-Hashes generiert wurden. Für diese Versionen wurde die Option BR_NO_CHECK_HASH_FOR verwendet, die die Hash-Überprüfung deaktiviert. Die Daten wurden über HTTPS heruntergeladen, aber standardmäßig wurde im Falle eines Download-Fehlers auf einen unverschlüsselten Zugriff auf http://source.buildroot.net zurückgegriffen. Der Angreifer konnte bei einem MITM-Angriff die Verbindung zum HTTPS-Server blockieren, und der Download wurde dann auf http://sources.buildroot.net zurückgesetzt.

Quelle: opennet.ru

60GB SSD 8Gb DDR4