Vulnerabilidade no XFS que permite a leitura de dados brutos do dispositivo de bloco

Uma vulnerabilidade (CVE-2021-4155) foi identificada no código do sistema de arquivos XFS que permite que um usuário local sem privilégios leia dados de bloco não utilizados diretamente de um dispositivo de bloco. Todas as versões principais do kernel Linux anteriores à 5.16 que contêm o driver XFS são afetadas por esse problema. A correção foi incluída na versão 5.16, bem como nas atualizações do kernel 5.15.14, 5.10.91, 5.4.171, 4.19.225, etc. O status das atualizações sendo geradas para corrigir o problema nas distribuições pode ser acompanhado nestas páginas: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch.

A vulnerabilidade é causada pelo comportamento incorreto de dois ioctl(XFS_IOC_ALLOCSP) e ioctl(XFS_IOC_FREESP) específicos do XFS, que são um análogo funcional da chamada de sistema fallocate() em todo o kernel. Ao aumentar o tamanho de um arquivo que não está alinhado ao bloco, ioctls XFS_IOC_ALLOCSP/XFS_IOC_FREESP não redefine os bytes finais para zero até o próximo limite do bloco. Assim, no XFS com um tamanho de bloco padrão de 4096 bytes, um invasor pode ler até 4095 bytes de dados gravados anteriormente de cada bloco. Essas áreas podem conter dados de arquivos excluídos, arquivos desfragmentados e arquivos com blocos desduplicados.

Você pode testar seu sistema quanto ao problema usando um protótipo de exploração simples. Se, após executar a sequência de comandos proposta, for possível ler o texto de Shakespeare, o driver FS estará vulnerável. A montagem inicial de uma partição XFS para demonstração requer privilégios de root.

Como ioctl(XFS_IOC_ALLOCSP) e ioctl(XFS_IOC_FREESP) são praticamente iguais em funcionalidade ao fallocate() padrão, e sua única diferença é o vazamento de dados, sua presença é semelhante a um backdoor. Apesar da política geral de não alterar as interfaces existentes no kernel, por sugestão do Linus, decidiu-se remover completamente esses ioctls na próxima versão.

Fonte: opennet.ru

Adicionar um comentário