
CVE-2021-27289: Umgehung des Wiedergabeschutzes auf Ksix Zigbee-Geräten
Hallo zusammen,
Ich nehme an, das Professionellste war, dieses Repository genau so zu betiteln, wie es ist – klar, beschreibend und auf den Punkt. Aber als ich es zusammenstellte, kamen mir ein paar andere Titel in den Sinn, wie:
Wie auch immer, hier ist die Geschichte.
Während ich mich darauf vorbereitete, eine neue Sicherheitslücke zu veröffentlichen, erinnerte ich mich an etwas, an dem ich vor Jahren gearbeitet hatte – einen Fehler, den ich während meiner Abschlussarbeit bei der Erforschung von IoT-Protokollen wie Thread und Zigbee gefunden hatte. Damals schickte ich einen Bericht an MITRE, hörte aber nie zurück, also dachte ich, er sei einfach ignoriert worden.
Aus Neugier meldete ich mich wieder bei dem alten Gmail-Konto an, das ich für die Einreichung verwendet hatte … und zu meiner Überraschung sah ich, dass im Jahr 2023 – drei Jahre später – tatsächlich eine CVE zugewiesen worden war.
CVE-2021-27289, verknüpft mit der Sicherheitslücke, die ich als Student gemeldet hatte.
Warum hat es so lange gedauert? Als ich mich zum ersten Mal an den Hersteller wandte, sagten sie, sie hätten nicht genügend Personal, um es zu beheben, und wiederholten diese Ausrede ständig. Ich teilte MITRE mit, dass niemand etwas dagegen zu unternehmen schien, also nehme ich an, sie warteten – wahrscheinlich, weil das Problem ohnehin nie gepatcht werden würde.
Der Fehler betraf mehrere Zigbee-basierte IoT-Geräte von Ksix. Das Kernproblem war, dass der Wiedergabeschutzmechanismus, der in der Zigbee-Spezifikation definiert und durch den Frame-Zähler durchgesetzt wird, nicht richtig implementiert war.
Da die Geräte den Frame-Zähler nicht korrekt überprüften, konnte ein Angreifer mit dem Netzwerk kommunizieren und Pakete fälschen, indem er einfach die Sequenznummer auf einen Wert erhöhte, der höher war als der letzte vom Gerät gesehene. Dies machte es möglich, aufgezeichnete Nachrichten wiederzugeben und sie als gültig akzeptieren zu lassen – was effektiv eine Authentifizierungsumgehung darstellte.
Dieses Repository enthält alles, woran ich während meiner Abschlussarbeit gearbeitet habe:
Ksix Zigbee-IoT-Geräte sind von einer Replay-Angriff-Sicherheitslücke betroffen, die durch eine unsachgemäße Implementierung der Wiedergabeschutzmechanismen von Zigbee verursacht wird.
Die folgenden Versionen wurden getestet und als anfällig befunden. Ich habe keine späteren Versionen getestet, daher könnten auch diese betroffen sein.
Diese Produkte sind nicht mehr auf der Website des Herstellers oder auf Plattformen wie Amazon erhältlich und scheinen eingestellt worden zu sein.
Der Zigbee-Stack in den betroffenen Geräten setzt den Wiedergabeschutzmechanismus nicht richtig durch, der auf dem in der Zigbee-Spezifikation definierten Frame-Zählerfeld basiert. Dieses Feld soll sicherstellen, dass empfangene Nachrichten aktuell und nicht wiedergegeben wurden.
In dieser Implementierung wird der Frame-Zähler jedoch ignoriert oder nicht korrekt validiert. Infolgedessen kann ein Angreifer ein legitimes Zigbee-Paket erfassen, seine Sequenznummer auf einen höheren Wert erhöhen (z. B. 250) und es erneut an das Netzwerk senden.
Da die Geräte nur die Sequenznummer überprüfen, akzeptieren sie die Nachricht als neu – was gefälschte Kommunikation und unbefugte Aktionen ermöglicht, ohne dass die Authentifizierung oder Verschlüsselung gebrochen wird.
Abhängig von der Art des Geräts und seiner Integration in die Umgebung kann dies dazu führen, dass in der App, die der Benutzer ursprünglich zum Einrichten des Netzwerks verwendet hat, falsche Warnungen oder gefälschte Sensorzustände erscheinen (z. B. Bewegung erkannt, Tür geöffnet) – obwohl tatsächlich nichts passiert ist. In komplexeren Setups könnte es sogar Automatisierungsabläufe destabilisieren oder unbeabsichtigte Aktionen basierend auf gefälschten Daten auslösen.