Tecnologia

Ubuntu 26.04 adota sudo em Rust como padrão e encerra 46 anos de falhas em C

Adrian Kessler

Ubuntu 26.04 LTS, lançado em abril de 2026, torna o sudo-rs a implementação padrão da ferramenta que controla o acesso a nível de sistema no Linux. Quando um usuário ou processo precisa de privilégios elevados — para instalar software, modificar arquivos do sistema, executar um serviço como root — o sudo é o guardião. O original foi escrito em C. O sudo-rs é uma reimplementação completa em Rust, e agora é a versão que vem por padrão na distribuição Linux mais usada do mundo.

O sudo original foi escrito em 1980. Nesse tempo, o código em C acumulou algo mais além de funcionalidades: uma classe de vulnerabilidades de gerenciamento de memória que o Rust elimina em nível de compilador. A mais significativa foi a CVE-2021-3156, batizada de Baron Samedit. A vulnerabilidade ficou sem ser detectada por aproximadamente dez anos, permitindo escalonamento local de privilégios em todas as principais distribuições Linux. Um atacante local com uma conta de shell não-root podia se tornar root. A Canonical a corrigiu em 24 horas após a divulgação. A condição arquitetural que a permitiu — o gerenciamento manual de memória do C — não foi corrigida.

O que o Rust muda não é como o código é escrito, mas que classe de bugs pode existir nele. Estouros de buffer, erros de use-after-free e desreferências de ponteiro nulo são uma categoria de vulnerabilidade que o Rust elimina em tempo de compilação — o compilador rejeita código com esses padrões antes que ele possa ser executado. Para um software que lida com escalonamento de privilégios, isso é uma restrição significativa removida do modelo de ameaças.

O sudo-rs concluiu uma auditoria de segurança independente completa em 2023. O projeto atingiu paridade de desempenho com a implementação em C. A Canonical começou a distribuí-lo como opção em versões anteriores do Ubuntu antes de torná-lo o padrão no 26.04. A abordagem em etapas reflete a cautela apropriada para substituir uma ferramenta que, se falhar, pode bloquear o acesso dos usuários ao sistema ou escalar atacantes para root.

O Ubuntu 26.04 também inclui o uutils coreutils — reescritas em Rust de ferramentas fundamentais como ls, cat e mv. Mas cp, mv e rm permanecem nas implementações GNU em C para esta versão. A justificativa da Canonical: condições de corrida TOCTOU nessas implementações em Rust carregam risco de destruição de dados que a equipe julgou alto demais para um lançamento LTS. A implantação em etapas revela algo honesto sobre a abordagem ‘apenas reescreva em Rust’: as ferramentas existem, mas a migração exige análise de segurança caso a caso, não uma troca genérica.

O kernel Linux começou a aceitar código de drivers em Rust em 2022. A equipe do Android usa Rust para novo código de sistemas desde 2021. A Microsoft reescreveu componentes sensíveis à memória do Windows em Rust. O Ubuntu tornar o sudo-rs padrão é um marco significativo porque não é um experimento em um novo driver ou um componente opcional — é a camada de autenticação para acesso ao sistema, enviada por padrão para toda nova instalação do Ubuntu.

O padrão de CVE que produziu o Baron Samedit termina para usuários do Ubuntu sob esta configuração. Se outras grandes distribuições — Debian, Red Hat, Fedora, Arch — seguirão a mudança do Ubuntu para o sudo-rs padrão é a questão que determina a escala da mudança. O sudo-rs está disponível para todas elas. A Canonical decidiu que os resultados da auditoria eram suficientes. A próxima decisão pertence aos outros mantenedores.

Tags: , , , , ,

Discussão

Há 0 comentários.