Linux-Kernel-Maintainer Greg Kroah-Hartman hat am 31. Mai zum fünften Mal einen Patch vorgelegt, der die veraltete und als unsicher geltende RNDIS-Protokollfamilie vollständig aus dem Kernel entfernen soll. Der Vorstoß markiert den vorläufigen Höhepunkt eines fast dreieinhalb Jahre währenden Tauziehens zwischen Sicherheitsinteressen und realen Kompatibilitätsanforderungen.
„Von Grund auf unsicher“ – Warum RNDIS ein Sicherheitsrisiko darstellt
RNDIS (Remote Network Driver Interface Specification) ist ein proprietäres Protokoll von Microsoft, das virtuelle Ethernet-Verbindungen über USB ermöglicht. Es stammt aus der Windows-XP-Ära und wurde später auch für Linux und Android portiert. Das grundlegende Problem liegt jedoch nicht in der Implementierung, sondern im Design: RNDIS setzt voraus, dass das angeschlossene Gerät und der Host vertrauenswürdig sind. Bösartige Teilnehmer werden im Sicherheitsmodell schlicht nicht vorgesehen. Diese Prämisse ist in modernen Szenarien, in denen USB-Geräte oft von Dritten stammen, nicht mehr haltbar.
Bereits 2022 schrieb Kroah-Hartman in seiner ersten Ankündigung auf der Linux-Kernel-Mailingliste (LKML) unmissverständlich: „Das Microsoft RNDIS-Protokoll ist von Grund auf unsicher und anfällig, wenn es in Systemen mit unvertrauenswürdigen Hosts oder Geräten eingesetzt wird. Es ist unmöglich, dieses Protokoll sicher zu machen. Daher werden alle RNDIS-Treiber deaktiviert und für die Zukunft unbrauchbar gemacht.“ Diese Einschätzung hat sich durch die Jahre bestätigt. So wurde 2022 die Sicherheitslücke CVE-2022-25375 gemeldet, bei der eine unzureichende Größenprüfung im RNDIS-USB-Gadget zu Speicherlecks führen konnte. Erst im Mai 2026 folgte CVE-2026-31722, ein Bug, der durch wiederholtes Binden und Lösen des Treibers einen Kernel-Crash auslösen kann. Jeder einzelne Patch stopft nur ein Loch, aber die grundlegende Architektur bleibt brüchig.
Dreieinhalb Jahre, fünf Anläufe: Der lange Kampf um die Deaktivierung
Die Geschichte der RNDIS-Deaktivierung liest sich wie ein epischer Kampf gegen die Trägheit des realen Einsatzes. Der erste Patch wurde im November 2022 eingereicht. Es folgten Versuche im Januar 2023, im Juli 2023 und im Dezember 2024. Jedes Mal scheiterte die Aktion am Widerstand von Entwicklern und Anwendern, die auf das Protokoll angewiesen waren. Der fünfte Anlauf vom Mai 2026 ist der aktuellste, aber keineswegs der letzte.
- November 2022: Kroah-Hartman reicht den ersten Deaktivierungs-Patch ein.
- Januar 2023: Ein Versuch, die Treiber über ein „BROKEN“-Flag in Kconfig zu sperren, scheitert.
- Juli 2023: Ein erneuter Vorstoß bleibt aufgrund von Bedenken bezüglich bestehender USB-Tethering-Lösungen stecken.
- Februar 2024: Der „rndis-removal“-Branch wird wiederbelebt, erreicht aber nicht den Mainline-Kernel.
- Dezember 2024: Ein weiterer Commit wird eingereicht, der jedoch nicht gemergt wird.
- Mai 2026: Der fünfte Patch wird in Kroah-Hartmans persönlichem Git-Zweig aktualisiert.
Der grundlegende Konflikt bleibt stets derselbe: Die Sicherheitsrisiken sind offensichtlich, aber das Protokoll wird immer noch genutzt. Besonders Embedded-Plattformen wie Raspberry Pi oder BeagleBone verwenden RNDIS im USB-Gadget-Modus. Und obwohl Google Android vor Jahren von RNDIS auf NCM (Network Control Model) umgestellt hat, betrifft dieser Wechsel laut Entwicklerangaben nur Geräte ab dem Pixel 6. Ältere Smartphones oder Geräte mit Hersteller-Firmware nutzen RNDIS auch 2026 noch.
Was ist die Alternative? NCM und ECM als moderne Standards
Für alle, die auf USB-Tethering angewiesen sind, gibt es längst Alternativen. Die Protokolle CDC-ECM (Ethernet Control Model) und CDC-NCM (Network Control Model) sind offene, standardisierte USB-Klasse-Protokolle, die im Linux-Kernel fest integriert sind. Der entscheidende Unterschied zu RNDIS liegt in der Transparenz und Schlichtheit des Designs. ECM kapselt Netzwerkframes direkt in USB-Pakete, was die Angriffsfläche drastisch reduziert. NCM ist eine Weiterentwicklung, die mehrere Netzwerkframes in einem USB-Transfer bündeln kann und damit auch die Leistung verbessert. Ab Android 14 setzen viele Hersteller auf NCM.
Interessant ist, dass selbst Microsoft RNDIS nicht mehr aktiv bewirbt. Unter Windows 10 und 11 ist der Treiber zwar noch vorhanden, wird aber nicht mehr automatisch installiert. Als ein Kernel-Entwickler im März 2024 einen Patch zur Beschleunigung von RNDIS einreichte, entgegnete Kroah-Hartman: „Es gibt noch Windows-Systeme, die nur RNDIS unterstützen? Auch Windows hat RNDIS aus gutem Grund als nicht empfohlen markiert.“
Der aktuelle Stand und die Perspektive
Trotz des fünften Anlaufs ist der Patch noch nicht im Mainline-Kernel angekommen. Er liegt weiterhin nur in Kroah-Hartmans persönlichem „rndis“-Branch. Um Teil der nächsten Kernel-Version zu werden, muss er erst in den „next“-Branch des USB-Subsystems und dann in den Tree von Greg Kroah-Hartman selbst aufgenommen werden. Angesichts der gescheiterten Versuche der Vergangenheit ist ein Scheitern auch diesmal nicht ausgeschlossen. Dennoch hat sich die Lage verändert. Die Verbreitung von NCM nimmt zu, die Sicherheitslücken in RNDIS mehren sich, und die Zeit arbeitet für die Abschaltung. Die Waage zwischen „wird noch gebraucht“ und „sollte nicht mehr verwendet werden“ neigt sich langsam, aber stetig in Richtung der Sicherheit.