
Firmware-Update-Server-Verifizierungsschwachstelle auf Buffalo LS210D Version 1.78-0.03
Christopher J. Pace und Ryan Miller
Der Buffalo LS210D ist ein Network Attached Storage (NAS)-Server, der für kleine Unternehmen und Privatpersonen entwickelt und vermarktet wird. Der LS210D bietet die Möglichkeit, ein Firmware-Update remote herunterzuladen und zu installieren. Der LS210D ist innerhalb dieser Funktion anfällig für einen „Adversary-in-the-Middle“-Angriff (AitM). Ein Angreifer, der die vorgelagerte Verbindung eines Opfers kontrolliert, kann entweder einen falschen DNS-Namen für den Update-Server bereitstellen oder den Datenverkehr vom Update-Server auf einen bösartigen Server umleiten. Dies kann zur Ausführung von Befehlen als Root-Benutzer oder zur direkten Installation von Malware führen.
Die Datei /etc/init.d/update_notifications.sh wird vom serverseitigen Firmware-Update-Skript unter /www/buffalo/www/dynamic/system/update/BufUpdate.pm aufgerufen. Innerhalb von update_notifications.sh befindet sich die folgende Zeile:

Das Öffnen dieser XML-Datei zeigt, dass die XML-Datei selbst ebenfalls auf eine reine HTTP-Verbindung verweist:

Darüber hinaus ist diese ZIP-Datei ebenfalls nicht verschlüsselt. Frühere Recherchen zu diesem Modell führten uns zum Herunterladen eines manuellen Firmware-Update-Dienstprogramms, das eine passwortgeschützte ZIP-Datei enthielt. Die Datei linkstation_series_1.75-0.01.zip enthält diese Schutzmaßnahmen nicht. Im Archiv befindet sich die Datei hddrootfs.buffalo.updated, die das Archiv hddrootfs.buffalo enthält, welches das Root-Dateisystem für den LS120D enthält. Ein Angreifer kann diese ZIP-Datei direkt einsehen und modifizieren, um eigene Malware einzuschleusen oder sensible Dateien zu lesen.

Sobald ein Angreifer einen AitM-Angriff durchgeführt hat, bietet der Router bereitwillig an, die aktualisierte Firmware zu installieren. Hier ist ein Beispiel für einen solchen Angriff, wobei der Bildschirm rechts die notwendigen Änderungen an fw_info2.xml zeigt, nämlich das Hinzufügen von 0x0000001D zum productId-Tag und das Erhöhen des Versions-Tags auf eine Version, die höher ist als die Firmware-Version des Opfers (in diesem Fall 1.78-0.04).

