Das Unternehmen Canonical hat die vorlĂ€ufigen Ergebnisse des unabhĂ€ngigen Sicherheitsaudits des uutils coreutils-Tools (Rust Coreutils), das in Rust geschrieben und teilweise anstelle des GNU Coreutils-Pakets in Ubuntu verwendet wird, veröffentlicht. Das Audit wurde von der Firma Zellic durchgefĂŒhrt, die Erfahrung in der Analyse von Schwachstellen in Projekten mit der Programmiersprache Rust hat. Bei der ĂberprĂŒfung wurden 113 Sicherheitsprobleme identifiziert.
Der Bericht (PDF, 156 Seiten) mit den Ergebnissen der ersten Phase des Audits, die die wichtigsten Dienstprogramme des uutils-Sets abdeckt, ist inzwischen verfĂŒgbar. In der ersten Phase, die von Dezember 2025 bis Januar 2026 durchgefĂŒhrt wurde, wurden 73 Schwachstellen identifiziert, darunter 7 als kritisch, 11 als gefĂ€hrlich, 29 als von mittlerer Gefahr und 26 als unbedenklich.
Die zweite Phase des Audits fand von Februar bis MĂ€rz statt und umfasste sekundĂ€re Tools, die in der ersten Phase nicht ĂŒberprĂŒft wurden. In der zweiten Phase wurden 40 Schwachstellen gefunden, deren GefĂ€hrlichkeit derzeit noch nicht detailliert dargestellt wird (der Bericht soll spĂ€ter veröffentlicht werden). Informationen zu allen identifizierten Problemen wurden bereits an die Entwickler von uutils weitergegeben, und der GroĂteil der Schwachstellen wurde in den Versionen uutils 0.5-0.8 ohne zusĂ€tzliche Bekanntmachung und ohne Hinweis auf den Zusammenhang zwischen den vorgenommenen Korrekturen und der Beseitigung der Schwachstellen behoben.
Das Paket rust-coreutils wurde standardmĂ€Ăig in der Herbstversion von Ubuntu 25.10 integriert, aber im Hinblick auf die wĂ€hrend des Audits identifizierten Probleme in der LTS-Zweig von Ubuntu 26.04 wurden die Tools cp, mv und rm aus dem Paket GNU Coreutils zurĂŒckgebracht. Es wird darauf hingewiesen, dass am 22. April in diesen Tools noch 8 bekannte Race Conditions nicht behoben sind. Die anderen Tools stammen aus der Version rust-coreutils 0.8.0. In Ubuntu 26.10 planen die Entwickler, vollstĂ€ndig auf rust-coreutils umzusteigen.
SchwĂ€chen in System-Utilities sind gefĂ€hrlich, da sie in Skripten verwendet werden, die mit Root-Rechten ausgefĂŒhrt werden. Zum Beispiel konnte eine in der Version uutils coreutils 0.3.0 behobene SchwĂ€che in der rm-Utility ausgenutzt werden, wenn sie tĂ€glich ĂŒber das Cron-Skript /etc/cron.daily/apport ausgefĂŒhrt wird, das mit Root-Rechten lĂ€uft und rekursiv den Inhalt des Verzeichnisses /var/crash löscht, das fĂŒr alle Benutzer im System schreibbar ist.
Zu den im ersten Bericht als kritisch eingestuften SchwÀchen gehören:
- Eine SchwĂ€che in der chroot-Utility, die durch die Verarbeitung der Option ââuserspecâ nach dem Aufruf von chroot() und vor dem ZurĂŒcksetzen der Berechtigungen verursacht wird. Auf Systemen mit glibc fĂŒhrt die Namensauflösung ĂŒber die Funktion getpwnam() zum Lesen der Datei /etc/nsswitch.conf, die im NSS (Name Service Switch) verwendet wird, und zum dynamischen Laden der dort angegebenen Bibliotheken mit NSS-Modulen (libnss_*.so.2). Da der chroot()-Aufruf vor der Verarbeitung des NSS erfolgt, wird die Datei /etc/nsswitch.conf relativ zum neuen Root geladen, wĂ€hrend die NSS-Bibliotheken vor dem ZurĂŒcksetzen der Berechtigungen geladen werden. Wenn ein Benutzer Schreibzugriff auf den neuen Root hat, kann er seine eigenen NSS-Bibliotheken einschleusen und die AusfĂŒhrung von Code mit Root-Rechten erreichen.
- Ăndern der Dateiberechtigungen nach einem Fehler bei der Erstellung eines benannten Kanals (FIFO) mit dem mkfifo-Tool â wenn eine vorhandene Datei als Argument angegeben wird, gibt mkfifo einen Fehler zurĂŒck, beendet jedoch nicht abrupt, sondern fĂŒhrt den Aufruf von set_permissions() aus und Ă€ndert die Berechtigungen der vorhandenen Datei. Unter BerĂŒcksichtigung von umask 022 ermöglicht die Schwachstelle, die Berechtigungen der Datei auf 644 (rw-r--r--) zu Ă€ndern und auf Dateien zuzugreifen, fĂŒr die kein Lesezugriff erlaubt war.
- Umgehung der BeschrĂ€nkungen ââpreserve-rootâ im chmod-Tool, die rekursive Operationen in Bezug auf den Wurzelverzeichnis der FS verbieten. Die Schwachstelle (CVE-2026-35338) ergibt sich daraus, dass im Code nur eine exakte Ăbereinstimmung des Pfades mit â/â ĂŒberprĂŒft wurde und keine Kanonisierung des Dateipfades stattgefunden hat. Um die ĂberprĂŒfung zu umgehen, reicht es aus, einen Pfad wie â/../â oder einen symbolischen Link zum Wurzelverzeichnis zu verwenden. Die Schwachstelle ist gefĂ€hrlich, da es möglich ist, seinen eigenen Pfad in ein Systemskript einzufĂŒgen, das den Befehl chmod aufruft, was zu einer rekursiven Ănderung der Berechtigungen fĂŒr alle Dateien im FS fĂŒhren kann.
- In der rm-Utility war die Verarbeitung beliebiger AbkĂŒrzungen der Option ââno-preserve-rootâ (âânâ, âânoâ, ââno-pâ, ââno-presâ usw.) zulĂ€ssig, um den Schutz vor der AusfĂŒhrung rekursiver Operationen mit dem Root-Verzeichnis zu deaktivieren (z. B. könnte man ârm -rf ân /â angeben und versehentlich alle Daten löschen. In GNU Coreutils sind solche abgekĂŒrzten Optionen jedoch verboten.
- Umgehung der EinschrĂ€nkungen ââpreserve-rootâ in der rm-Utility, die rekursive Operationen bezĂŒglich des Wurzelverzeichnisses der FS verhindern, durch Ersetzung eines symbolischen Links auf â/â.
- Fehlende vollstĂ€ndige SchutzmaĂnahmen gegen die Angabe von Verzeichnissen, die mit einem Punkt beginnen. Beispielsweise gibt die Utility bei der AusfĂŒhrung von ârm -rf .â einen Fehler aus, aber bei Angabe von ârm -rf ./â oder ârm -rf .///â löscht sie stillschweigend das aktuelle Verzeichnis.
- Ein Fehler im Argumentparser der Utility kill ermöglicht das Senden eines Signals an alle Prozesse im System, wenn die Prozess-ID â-1â angegeben wird (kill -1).
Im Ăbrigen gehören die meisten Schwachstellen zur TOCTOU-Klasse (Time-Of-Check-To-Time-Of-Use), was bedeutet, dass es zu einer Race Condition kommen kann, die es ermöglicht, Daten zwischen der Validierung der Informationen und der DurchfĂŒhrung der Operation zu Ă€ndern. Beispielsweise kann eine Datei in der Zeit zwischen dem Abschluss der ĂberprĂŒfung und dem Beginn der AusfĂŒhrung durch einen symbolischen Link ersetzt werden. Im Kontext der Verwendung der Tools cp und mv in Systemskripten, die mit Root-Rechten ausgefĂŒhrt werden, ermöglichen solche Schwachstellen das Kopieren oder Ăberschreiben beliebiger Dateien.
Quelle: opennet.ru
