{"id":1064140,"date":"2026-06-02T11:00:16","date_gmt":"2026-06-02T11:00:16","guid":{"rendered":"https:\/\/www.europesays.com\/de\/1064140\/"},"modified":"2026-06-02T11:00:16","modified_gmt":"2026-06-02T11:00:16","slug":"rust-coreutils-0-9-0-weniger-unsafe-mehr-tempo","status":"publish","type":"post","link":"https:\/\/www.europesays.com\/de\/1064140\/","title":{"rendered":"Rust Coreutils 0.9.0: weniger unsafe, mehr Tempo"},"content":{"rendered":"<ol class=\"a-toc__list\">\n<li class=\"a-toc__item&#10;          &#10;            a-toc__item--counter&#10;          &#10;            a-toc__item--current\">\n<p>              Rust Coreutils 0.9.0: weniger unsafe, mehr Tempo<\/p>\n<\/li>\n<\/ol>\n<p>    close notice<\/p>\n<p class=\"notice-banner__text a-u-mb-0\">\n      This article is also available in<br \/>\n        <a href=\"https:\/\/www.heise.de\/en\/news\/Rust-Coreutils-0-9-0-less-unsafe-more-speed-11315230.html\" class=\"notice-banner__link a-u-inline-link\" rel=\"nofollow noopener\" target=\"_blank\">English<\/a>.<\/p>\n<p>      It was translated with technical assistance and editorially reviewed before publication.\n    <\/p>\n<p class=\"notice-banner__link a-u-mb-0\">\n    Don\u2019t show this again.\n<\/p>\n<p>Die Entwickler von uutils\/coreutils haben Version 0.9.0 ihrer in Rust geschriebenen Neuimplementierung der GNU Core Utilities ver\u00f6ffentlicht. Das Release bringt vor allem Sicherheitsverbesserungen nach einem externen Audit, weniger unsafe-Code und schnellere I\/O-Pfade durch Zero-Copy-Verfahren. Zudem erweitert die neue Version die Unterst\u00fctzung f\u00fcr WebAssembly, Windows und Cygwin.<\/p>\n<p>        Weiterlesen nach der Anzeige<\/p>\n<p>uutils\/coreutils setzt die klassischen GNU Core Utilities in Rust neu um. Das Projekt liefert zahlreiche Standardwerkzeuge von Unix- und Linux-Systemen, darunter ls, cp, mv, rm, cat und sort. Ziel ist eine m\u00f6glichst hohe Kompatibilit\u00e4t zu den GNU-Pendants \u2013 bei gleichzeitig besserer Speichersicherheit und Wartbarkeit durch Rust.<\/p>\n<p>Sicherheitsaudit deckt TOCTOU-Schwachstellen auf<\/p>\n<p>Im Mittelpunkt des Releases stehen Sicherheitsverbesserungen, die auf ein Audit der Firma Zellic zur\u00fcckgehen. Die Pr\u00fcfer fanden vor allem TOCTOU-Schwachstellen (Time of Check, Time of Use) und Probleme bei Randf\u00e4llen im Dateisystem. Bei TOCTOU-L\u00fccken handelt es sich um Race Conditions: Der Zustand einer Datei kann sich zwischen einer Pr\u00fcfung und ihrer tats\u00e4chlichen Verwendung \u00e4ndern \u2013 und genau diese L\u00fccke l\u00e4sst sich ausnutzen.<\/p>\n<p>Die Maintainer betonen, dass die dabei vergebenen 44 CVEs keine klassischen Speicherfehler beschreiben. Das Audit habe vielmehr Verhaltensunterschiede zu GNU Coreutils aufgedeckt, die in bestimmten Situationen sicherheitsrelevant werden k\u00f6nnen. Version 0.9.0 schlie\u00dft nach Projektangaben einen Gro\u00dfteil dieser Befunde.<\/p>\n<p>Daf\u00fcr f\u00fchrt das Projekt ein neues Modul namens uucore::safe_copy ein, das Kopiervorg\u00e4nge gegen TOCTOU-Angriffe absichert. Auch die rekursiven Operationen von cp, mv und chmod erhalten entsprechende Schutzmechanismen. rm geht robuster mit problematischen Pfadangaben wie . und .. um. nohup legt die Datei nohup.out nun mit den restriktiven Zugriffsrechten 0600 an. Und chroot l\u00f6st Benutzer- und Gruppen-IDs bereits auf, bevor es in die neue Wurzelumgebung wechselt.<\/p>\n<p>Weniger unsafe-Code, Umstieg auf rustix<\/p>\n<p>Parallel dazu reduziert das Team weiter den Anteil an unsafe-Code. Zahlreiche Stellen in Werkzeugen, Tests und gemeinsamen Bibliotheken kommen jetzt ohne unsichere Speicher- oder Systemzugriffe aus. In vielen Bereichen ersetzt das Projekt zudem die bisher genutzten Bibliotheken nix und libc durch rustix. Diese stellt Systemaufrufe \u00fcber st\u00e4rker typisierte Rust-Schnittstellen bereit und vermeidet so eine Reihe typischer Fehlerquellen. Die Umstellung betrifft unter anderem id, tr, timeout, sort, wc, tail, cp und who.<\/p>\n<p>        Weiterlesen nach der Anzeige<\/p>\n<p>F\u00fcr mehr Tempo sorgen neue Zero-Copy-Datenpfade unter Linux. Mehrere Werkzeuge nutzen jetzt verst\u00e4rkt die Syscalls splice(), tee() und pipe(), um Daten direkt zwischen Kernel-Puffern zu \u00fcbertragen. Da die Daten dabei nicht mehr durch den Adressraum des Prozesses wandern, sinken Speicherzugriffe und CPU-Last. Profitieren sollen unter anderem cat, wc, head, tail, cp, tee, yes und unexpand. F\u00fcr unexpand nennen die Entwickler einen Geschwindigkeitsgewinn von rund 7,5 Prozent. Auch cp und tee arbeiten beim Verarbeiten von Pipe-Daten sp\u00fcrbar schneller.<\/p>\n<p>GNU-Kompatibilit\u00e4t: neue Referenz, mehr Tests<\/p>\n<p>An der GNU-Kompatibilit\u00e4t arbeitet das Projekt weiter intensiv. Als Referenz dient nun <a href=\"https:\/\/www.heise.de\/news\/Rennen-gegen-Rust-GNU-Coreutils-werden-schneller-11265724.html\" rel=\"nofollow noopener\" target=\"_blank\">GNU Coreutils 9.11<\/a> statt 9.10. Die Zahl der fehlschlagenden Tests in der GNU-Testsuite steigt dadurch von 21 auf 56 \u2013 laut Projekt jedoch ohne Regressionen. Die Ursache liegt in 25 neuen Tests, die GNU der Suite hinzugef\u00fcgt hat und die uutils noch nicht vollst\u00e4ndig besteht. Weitere Kompatibilit\u00e4tskorrekturen betreffen numfmt, date, tr, cksum, factor, head, stat und sort.<\/p>\n<p>Besonders umfangreich fallen die \u00c4nderungen an numfmt aus. Das Werkzeug formatiert numerische Werte jetzt pr\u00e4ziser, weist wissenschaftliche Notation zur\u00fcck und beachtet die Locale-Einstellung LC_NUMERIC f\u00fcr das Dezimaltrennzeichen. Hinzu kommen Anpassungen bei Rundung, Vorzeichen und der Verarbeitung mehrbytiger Suffixe.<\/p>\n<p>Auch ls erh\u00e4lt mehrere Korrekturen und Erweiterungen. Sie betreffen symbolische Links, die Versionssortierung und die rekursive Verzeichnisauflistung. Zudem haben die Entwickler den Code so umgebaut, dass andere Programme ls als Bibliothek einbinden k\u00f6nnen, ohne dessen Ausgabe zwingend auf die Standardausgabe umzuleiten. Als Beispiel nennt das Projekt die Shell <a class=\"heiseplus-lnk\" href=\"https:\/\/www.heise.de\/tests\/Kommandozeilen-Tool-im-Test-Nushell-fuer-Linux-macOS-und-Windows-9209453.html\" rel=\"nofollow noopener\" target=\"_blank\">Nushell<\/a>.<\/p>\n<p>Mehr Plattformen, mehr Locales<\/p>\n<p>Beim Plattformsupport legt Version 0.9.0 ebenfalls zu. Die Werkzeuge ln, dd, mktemp und tty laufen jetzt auch unter dem WebAssembly System Interface (WASI), das WebAssembly-Anwendungen au\u00dferhalb des Browsers standardisierten Zugriff auf Betriebssystemfunktionen erlaubt. Daneben verbessern die Entwickler die Unterst\u00fctzung f\u00fcr Windows, MSYS2 und Cygwin und arbeiten weiter an der Portierung auf OpenBSD. Schlie\u00dflich ber\u00fccksichtigen jetzt auch numfmt und du regionale Einstellungen f\u00fcr das Dezimaltrennzeichen \u00fcber LC_NUMERIC.<\/p>\n<p>Alle Details zum Update finden sich in den <a href=\"https:\/\/github.com\/uutils\/coreutils\/releases\/tag\/0.9.0\" rel=\"nofollow noopener\" target=\"_blank\">Release Notes auf der GitHub-Projektseite<\/a>.<\/p>\n<p>(<a class=\"redakteurskuerzel__link\" href=\"https:\/\/www.heise.de\/news\/mailto:fo@ix.de\" title=\"Moritz F\u00f6rster\" rel=\"nofollow noopener\" target=\"_blank\">fo<\/a>)<\/p>\n<p>\n      Dieser Link ist leider nicht mehr g\u00fcltig.\n    <\/p>\n<p>Links zu verschenkten Artikeln werden ung\u00fcltig,<br \/>\n      wenn diese \u00e4lter als 7\u00a0Tage sind oder zu oft aufgerufen wurden.\n    <\/p>\n<p><strong>Sie ben\u00f6tigen ein heise+ Paket, um diesen Artikel zu lesen. Jetzt eine Woche unverbindlich testen \u2013 ohne Verpflichtung!<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"Rust Coreutils 0.9.0: weniger unsafe, mehr Tempo close notice This article is also available in English. It was&hellip;\n","protected":false},"author":2,"featured_media":1064141,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_share_on_mastodon":"0"},"categories":[135],"tags":[226899,29,30,196,24469,53606,23774,4560,190,189,445,194,191,193,192],"class_list":["post-1064140","post","type-post","status-publish","format-standard","has-post-thumbnail","category-wissenschaft-technik","tag-coreutils","tag-deutschland","tag-germany","tag-it","tag-open-source","tag-programmiersprachen","tag-programmierung","tag-rust","tag-science","tag-science-technology","tag-softwareentwicklung","tag-technik","tag-technology","tag-wissenschaft","tag-wissenschaft-technik"],"share_on_mastodon":{"url":"https:\/\/pubeurope.com\/@de\/116680171769296803","error":""},"_links":{"self":[{"href":"https:\/\/www.europesays.com\/de\/wp-json\/wp\/v2\/posts\/1064140","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.europesays.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.europesays.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.europesays.com\/de\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.europesays.com\/de\/wp-json\/wp\/v2\/comments?post=1064140"}],"version-history":[{"count":0,"href":"https:\/\/www.europesays.com\/de\/wp-json\/wp\/v2\/posts\/1064140\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.europesays.com\/de\/wp-json\/wp\/v2\/media\/1064141"}],"wp:attachment":[{"href":"https:\/\/www.europesays.com\/de\/wp-json\/wp\/v2\/media?parent=1064140"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.europesays.com\/de\/wp-json\/wp\/v2\/categories?post=1064140"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.europesays.com\/de\/wp-json\/wp\/v2\/tags?post=1064140"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}