U Rust Coreutils otkriveno je 113 ranjivosti. U Ubuntu 26.04 vraćeni su cp, mv i rm iz GNU Coreutils

Tvrtka Canonical objavila je privremene rezultate neovisne sigurnosne revizije alata uutils coreutils (Rust Coreutils), napisanog na programskom jeziku Rust i djelomično korištenog u Ubuntu-u umjesto GNU Coreutils paketa. Reviziju je izvršila tvrtka Zellic, koja ima iskustvo u analizi ranjivosti u projektima pisanima na jeziku Rust. Tijekom provjere otkriveno je 113 sigurnosnih problema.

Trenutno je dostupan izvještaj (PDF, 156 stranica) s rezultatima prvog dijela revizije, koji pokriva najvažnije alate iz seta uutils. U prvom dijelu, koji je izveden od prosinca 2025. do siječnja 2026. godine, otkriveno je 73 ranjivosti, od kojih je 7 označeno kao kritične, 11 kao opasne, 29 kao srednje opasne i 26 kao neopasne.

Drugi dio revizije proveden je od veljače do ožujka i obuhvatio je sekundarne alate koji nisu provjereni u prvom dijelu. U drugom dijelu otkriveno je 40 ranjivosti, čija opasnost još nije detaljizirana (izvještaj planiraju objaviti kasnije). Informacije o svim otkrivenim problemima već su prenesene razvojnim timovima uutils, a veći dio ranjivosti uklonjen je u izdanjima uutils 0.5-0.8 bez dodatne publiciteta i označavanja povezanosti unesenih ispravki s otklanjanjem ranjivosti.

Paket rust-coreutils bio je uključen prema zadanim postavkama u jesenskom izdanju Ubuntu 25.10, ali s obzirom na otkrivene probleme tijekom revizije, u LTS grani Ubuntu 26.04 vraćeni su alati cp, mv i rm iz GNU Coreutils paketa. Napominje se da, prema stanju od 22. travnja, u tim alatima ostaje neispravljeno 8 poznatih stanja utrke. Ostali alati koriste se iz izdanja rust-coreutils 0.8.0. U Ubuntu 26.10, programeri planiraju potpuno preći na rust-coreutils.

Ranjivosti u sustavnim alatima opasne su jer se koriste u skriptama koje se pokreću s pravima root korisnika. Na primjer, ranjivost u alatu rm, koja je otklonjena u izdanju uutils coreutils 0.3.0, mogla bi biti iskorištena prilikom svakodnevnog pokretanja iz cron skripte /etc/cron.daily/apport, koja se izvršava s pravima root i rekurzivno briše sadržaj direktorija /var/crash, dostupnog za pisanje svim korisnicima u sustavu.

Među ranjivostima označenim u prvom izvještaju kao kritične:

  • Ran vulnerability in the chroot utility, caused by processing the —userspec option after calling chroot() but before privilege dropping. On systems with glibc, name resolution through the getpwnam() function leads to reading the file /etc/nsswitch.conf, applied in NSS (Name Service Switch), and dynamically loading the libraries specified in it with NSS modules (libnss_*.so.2). Since the chroot() call is executed before processing NSS, the /etc/nsswitch.conf file is loaded relative to the new root, but NSS libraries are loaded before privilege dropping. If a user has write access to the new root, they can substitute their NSS libraries and execute code with root privileges.
  • Changing file permissions after a named pipe (FIFO) creation failure by the mkfifo utility — if you specify an existing file as an argument, mkfifo will return an error, but will not crash; instead, it will call set_permissions() and change the permissions of the existing file. Considering umask 022, the vulnerability allows changing the file permissions to 644 (rw-r--r--) and gaining access to files for which read permissions were not granted.
  • Bypassing the —preserve-root restrictions in the chmod utility, which prevent recursive operations regarding the root FS. The vulnerability (CVE-2026-35338) arises from the fact that the code only checked for an exact match of the path with '/' and did not perform path canonicalization. To bypass the check, it is sufficient to use a path like '/..' or a symbolic link to the root. The vulnerability is dangerous in that if you can substitute your path in a system script calling the chmod command, it can lead to recursive permission changes for all files in the FS.
  • In the rm utility, any abbreviations of the —no-preserve-root option were allowed to disable protection from executing a recursive operation with the root (for example, you could specify 'rm -rf -n /' and mistakenly delete all data). In GNU Coreutils, such abbreviated options are prohibited.
  • Bypassing the —preserve-root restrictions in the rm utility, which prohibit performing recursive operations regarding the root FS, by substituting a symbolic link to '/'.
  • Absence of full protection against specifying directories starting with a dot. For example, executing 'rm -rf .' will return an error, but specifying 'rm -rf ./'' or 'rm -rf .////' will silently delete the current directory.
  • Greška u kodu analize argumenata alata kill omogućuje slanje signala svim procesima u sustavu kada se navede identifikator procesa „-1“ (kill -1).

U ostalom, većina ranjivosti pripada klasi TOCTOU (Time-Of-Check-To-Time-Of-Use), koja podrazumijeva stanje utrke, omogućujući promjenu podataka u trenutku nakon provjere valjanosti informacija, ali prije izvršenja operacije s njima, na primjer, zamjenom datoteke simboličkom vezom u trenutku između završetka provjere i početka izvršenja operacije. U kontekstu korištenja alata cp i mv u sustavnim skriptama pokrenutim s pravima root, takve ranjivosti omogućuju kopiranje ili prepisivanje proizvoljnih datoteka.

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster