Technologie

Ubuntu 26.04 macht Rust-sudo zum Standard — Ende einer 46 Jahre alten C-Schwachstellenklasse

Adrian Kessler

Ubuntu 26.04 LTS, veröffentlicht im April 2026, macht sudo-rs zur Standardimplementierung des Werkzeugs, das den Systemzugriff unter Linux kontrolliert. Wenn ein Benutzer oder Prozess erweiterte Rechte benötigt – um Software zu installieren, Systemdateien zu ändern oder einen Dienst als root auszuführen – ist sudo der Gatekeeper. Das Original wurde in C geschrieben. sudo-rs ist eine vollständige Neuimplementierung in Rust und wird nun standardmäßig auf der weltweit am weitesten verbreiteten Linux-Distribution ausgeliefert.

Das ursprüngliche sudo wurde 1980 geschrieben. In dieser Zeit hat sich im C-Code neben den Funktionen noch etwas anderes angesammelt: eine Klasse von Speicherverwaltungsschwachstellen, die Rust auf Compiler-Ebene eliminiert. Die bedeutendste war CVE-2021-3156 mit dem Namen Baron Samedit. Die Schwachstelle blieb rund zehn Jahre unentdeckt und ermöglichte lokale Privilegieneskalation auf jeder großen Linux-Distribution. Ein lokaler Angreifer mit einem nicht privilegierten Shell-Konto konnte root werden. Canonical schloss die Lücke innerhalb von 24 Stunden nach der Offenlegung. Die architektonische Bedingung, die sie ermöglichte – C’s manuelle Speicherverwaltung – wurde nicht behoben.

Was Rust ändert, ist nicht, wie der Code geschrieben wird, sondern welche Klasse von Fehlern darin existieren kann. Pufferüberläufe, Use-After-Free-Fehler und Nullzeiger-Dereferenzierungen sind eine Kategorie von Schwachstellen, die Rust zur Compile-Zeit eliminiert – der Compiler lehnt Code mit diesen Mustern ab, bevor er ausgeführt werden kann. Für eine Software, die Privilegieneskalation handhabt, ist das eine signifikante Einschränkung, die aus dem Bedrohungsmodell entfernt wird.

sudo-rs durchlief 2023 ein vollständiges, unabhängiges Sicherheitsaudit. Das Projekt erreichte Leistungsparität mit der C-Implementierung. Canonical begann, es in früheren Ubuntu-Versionen als Option auszuliefern, bevor es in 26.04 zum Standard wurde. Das schrittweise Vorgehen spiegelt die Vorsicht wider, die beim Austausch eines Werkzeugs angebracht ist, dessen Versagen entweder Benutzer vom Systemzugriff aussperren oder Angreifern Root-Zugriff verschaffen kann.

Ubuntu 26.04 enthält auch uutils coreutils – Rust-Neuimplementierungen grundlegender Werkzeuge wie ls, cat und mv. cp, mv und rm bleiben jedoch für diese Version bei den GNU-C-Implementierungen. Canonicals Begründung: TOCTOU-Race-Conditions in diesen Rust-Implementierungen bergen ein Risiko der Datenzerstörung, das das Team für eine LTS-Version als zu hoch einschätzte. Die schrittweise Einführung zeigt etwas Ehrliches über den Ansatz „einfach in Rust neu schreiben“: Die Werkzeuge existieren, aber die Migration erfordert eine fallweise Sicherheitsanalyse, keinen pauschalen Wechsel.

Der Linux-Kernel begann 2022, Rust-Treibercode zu akzeptieren. Das Android-Team verwendet Rust seit 2021 für neue Systemcode-Bereiche. Microsoft hat speicherkritische Windows-Komponenten in Rust neu geschrieben. Dass Ubuntu sudo-rs zum Standard macht, ist ein bedeutender Meilenstein, weil es sich nicht um ein Experiment in einem neuen Treiber oder einer optionalen Komponente handelt – es ist die Authentifizierungsschicht für den Systemzugriff, standardmäßig auf jeder neuen Ubuntu-Installation ausgeliefert.

Das CVE-Muster, das Baron Samedit hervorbrachte, endet für Ubuntu-Benutzer unter dieser Konfiguration. Ob andere große Distributionen – Debian, Red Hat, Fedora, Arch – dem Ubuntu-Schritt folgen und sudo-rs standardmäßig einsetzen, ist die Frage, die das Ausmaß der Änderung bestimmt. sudo-rs ist für alle verfügbar. Canonical entschied, dass die Auditergebnisse ausreichen. Die nächste Entscheidung liegt bei den anderen Maintainern.

Schlagwörter: , , , , ,

Diskussion

Es gibt 0 Kommentare.