În rețeaua de pachete a distribuției Ubuntu 26.10, a cărei lansare este programată pentru 15 octombrie, s-a realizat o tranziție completă la instrumentele uutils coreutils (Rust Coreutils), scrise în limbajul Rust. Utilitarele din Rust Coreutils au înlocuit complet toate componentele pachetului GNU Coreutils, inclusiv utilitarele cp, mv și rm, care în Ubuntu 26.04 erau furnizate în varianta din GNU Coreutils.
Pachetul rust-coreutils a fost inițial inclus în mod implicit în versiunea Ubuntu 25.10, dar în ramura LTS a Ubuntu 26.04 s-a efectuat o revenire la furnizarea utilitarelor cp, mv și rm din setul GNU Coreutils. Variantele cp, mv și rm au fost returnate din cauza unor probleme de securitate identificate în timpul auditului bazei de cod a Rust Coreutils. Majoritatea vulnerabilităților din Rust Coreutils sunt cauzate de existența unei stări de competiție, care permite modificarea datelor imediat după verificarea validității informațiilor, dar înainte de executarea operației asupra lor (TOCTOU - Time-Of-Check-To-Time-Of-Use). Printre altele, astfel de vulnerabilități permit înlocuirea unui fișier cu un link simbolic în momentul dintre finalizarea verificării și începutul executării operației.
În contextul utilizării utilitarelor cp, mv și rm în scripturi de sistem rulate cu drepturi de root, înlocuirea cu un link simbolic oferă posibilitatea de a copia, suprascrie sau șterge fișiere arbitrare. De exemplu, la ștergerea recursivă a directoarelor, utilitarul rm verifica inițial toate directoarele și apoi le ștergea secvențial în ordine inversă, apelând funcția rmdir(). Dacă se înlocuiește directorul părinte cu un link simbolic imediat după verificarea acestuia, dar înainte de verificarea subdirectoarelor, se poate provoca ștergerea oricărui director din sistem în timpul unei rulări zilnice din scriptul cron /etc/cron.daily/apport, care, având drepturi de root, șterge recursiv conținutul directorului /var/crash, accesibil la scriere pentru toți utilizatorii din sistem.
Sursa: opennet.ro
