Linux 5.10 finalmente dispensa a ferramenta de décadas que causava bugs de segurança

Linux 5.10.3 corrige a possibilidade de duplicação de nomes de arquivos criptografados
kernel

Conforme já relamos aqui, o desenvolvedor Linus Torvalds deu início a mais um ciclo de para o kernel Linux, anunciando o lançamento do 5.10-rc1. Porém, desta vez há uma reviravolta histórica. A nova versão do kernel efetivamente marca o fim de um recurso antigo que há muito se tornou redundante depois que foi descoberto que causava bugs de segurança.

Com o fechamento da janela de mesclagem de duas semanas, que precede o lançamento de cada nova iteração do kernel do Linux, Torvalds compartilhou suas reflexões na lista de discussão do kernel do Linux, mantendo que “as coisas parecem ter corrido razoavelmente bem”.

A janela de mesclagem é uma parte fundamental de qualquer novo processo de lançamento de kernel, durante o qual até 1.000 patches enviados pela comunidade de desenvolvedores são mesclados todos os dias no repositório principal gerenciado por Torvalds. Um processo de revisão garante que cada patch implemente uma mudança desejável.

Linux 5.10 finalmente dispensa a ferramenta de décadas que causava bugs de segurança

Linux 5.10 finalmente dispensa a ferramenta de décadas que causava bugs de segurança

Desta vez, Torvalds chamou a atenção para a remoção de uma ferramenta de endereçamento, chamada set_fs (). Ela existe desde o lançamento original do Linux. “A mudança mais interessante – para mim – aqui é a remoção de set_fs () de Christoph”, escreveu ele. “Não é uma grande mudança, mas é interessante porque todo o modelo de set_fs () para especificar se uma cópia do espaço do usuário realmente vai para o espaço do usuário ou o espaço do kernel remonta à versão original do Linux.”

Como Torvalds explicou, a função set_fs () poderia ser usada para substituir os espaços de endereço, anulando a divisão entre o espaço do usuário e o espaço do kernel. A ferramenta foi amplamente usada no gerenciamento dos primeiros processadores x86 da Intel, para controlar a gama de endereços virtuais que podiam ser acessados por código sem privilégios.

No entanto, em 2010, o dicionário Common Vulnerabilities and Exposures (CVE) detalhou os problemas de segurança apresentados por set_fs (). Ao contornar certas restrições de acesso, a função mostrou ser capaz de “sobrescrever localizações arbitrárias da memória do kernel” e “ganhar privilégios” – em alguns casos, para permitir que o espaço do usuário sobrescreva os dados do kernel.

Dadas as deficiências de segurança da ferramenta, algumas arquiteturas, incluindo x86, powerpc, s390 e RISC-V, já removeram as substituições de espaço de endereço. Mas, como Torvalds escreveu: “Ainda temos ‘set_fs ()’ por perto, e nem toda arquitetura foi convertida para a nova ordem mundial.”

Outras mudanças

Além dessa remediação histórica há muito esperada, a versão 5.10-rc1, como a maioria das versões do kernel, vem com inúmeras mudanças adicionais. Torvalds contou quase 14.000 commits de cerca de 1.700 pessoas, com mudanças que vão desde o suporte para SOCs da Nvidia para carros e robôs autodirigidos até o suporte ao controle do Nintendo Switch.

Os relatórios tem 704.000 linhas de novo código e 419.000 linhas excluídas, tornando o 5.10-rc1 comparável em tamanho ao maior kernel do Linux de todos os tempos – 5.8. “Este parece ser um lançamento maior do que eu esperava e, embora a janela de mesclagem seja menor do que a do 5.8, não é muito menor”, disse Torvalds. “E 5.8 foi nosso maior lançamento de todos os tempos.”

De acordo com a programação típica do Linux, o 5.10-rc1 será seguido por várias semanas de patches de correção de problemas, com várias versões candidatas a serem lançadas antes da versão estável do kernel em dezembro.