Tecnologia

Ubuntu 26.04 adotta Rust sudo come predefinito, chiudendo 46 anni di vulnerabilità C

Adrian Kessler

Ubuntu 26.04 LTS, rilasciato nell’aprile 2026, rende sudo-rs l’implementazione predefinita dello strumento che controlla l’accesso a livello di sistema su Linux. Quando un utente o un processo necessita di privilegi elevati — per installare software, modificare file di sistema, eseguire un servizio come root — sudo è il guardiano. L’originale era scritto in C. sudo-rs è una reimplementazione completa in Rust, ed è ora la versione predefinita sulla distribuzione Linux più utilizzata al mondo.

L’sudo originale fu scritto nel 1980. In quel lasso di tempo, il codice C ha accumulato qualcos’altro oltre alle sue funzionalità: una classe di vulnerabilità di gestione della memoria che Rust elimina a livello di compilatore. La più significativa è stata CVE-2021-3156, denominata Baron Samedit. La vulnerabilità è rimasta inosservata per circa dieci anni, consentendo l’escalation dei privilegi locali su ogni grande distribuzione Linux. Un attaccante locale con un account shell non root poteva diventare root. Canonical l’ha corretta entro 24 ore dalla divulgazione. La condizione architetturale che l’ha permessa — la gestione manuale della memoria del C — non è stata corretta.

Ciò che Rust cambia non è come viene scritto il codice, ma quale classe di bug può esistere al suo interno. Buffer overflow, errori use-after-free e dereferenziazioni di puntatori nulli sono una categoria di vulnerabilità che Rust elimina in fase di compilazione — il compilatore rifiuta il codice con questi schemi prima che possa essere eseguito. Per un software che gestisce l’escalation dei privilegi, è un vincolo significativo da rimuovere dal modello di minaccia.

sudo-rs ha completato un audit di sicurezza indipendente completo nel 2023. Il progetto ha raggiunto la parità prestazionale con l’implementazione in C. Canonical ha iniziato a distribuirlo come opzione nelle versioni precedenti di Ubuntu, prima di renderlo predefinito nella 26.04. L’approccio graduale riflette la cautela appropriata per la sostituzione di uno strumento che, se fallisce, può bloccare l’accesso al sistema o far scalare un attaccante a root.

Ubuntu 26.04 include anche uutils coreutils — reimplementazioni in Rust di strumenti fondamentali come ls, cat e mv. Ma cp, mv e rm rimangono sulle implementazioni GNU C per questa release. La logica di Canonical: le race condition TOCTOU in quelle implementazioni Rust comportano un rischio di distruzione dei dati che il team ha giudicato troppo alto per una release LTS. Il rollout graduale rivela qualcosa di onesto sull’approccio ‘riscrivilo in Rust’: gli strumenti esistono, ma la migrazione richiede un’analisi della sicurezza caso per caso, non un cambio generalizzato.

Il kernel Linux ha iniziato ad accettare codice driver in Rust nel 2022. Il team Android usa Rust per codice di sistema nuovo dal 2021. Microsoft ha riscritto componenti di Windows sensibili alla memoria in Rust. Ubuntu che rende sudo-rs predefinito è una tappa significativa perché non è un esperimento in un nuovo driver o un componente opzionale — è il livello di autenticazione per l’accesso al sistema, distribuito di default su ogni nuova installazione di Ubuntu.

Lo schema CVE che ha prodotto Baron Samedit termina per gli utenti Ubuntu con questa configurazione. Se altre distribuzioni principali — Debian, Red Hat, Fedora, Arch — seguiranno la mossa di Ubuntu verso sudo-rs predefinito è la domanda che determina la portata del cambiamento. sudo-rs è disponibile per tutte. Canonical ha deciso che i risultati dell’audit erano sufficienti. La prossima decisione spetta agli altri manutentori.

Tag: , , , , ,

Discussione

Ci sono 0 commenti.