Vulnerabilidade no módulo ksmbd do kernel Linux que permite executar remotamente seu código

Uma vulnerabilidade crítica foi identificada no módulo ksmbd, que inclui uma implementação de um servidor de arquivos baseado no protocolo SMB integrado ao kernel Linux, que permite a execução remota de código com direitos de kernel. O ataque pode ser realizado sem autenticação, basta que o módulo ksmbd esteja ativado no sistema. O problema se manifestou desde o kernel 5.15, lançado em novembro de 2021, e foi discretamente corrigido nas atualizações 5.15.61, 5.18.18 e 5.19.2, formadas em agosto de 2022. Como o problema ainda não recebeu um identificador CVE, ainda não há informações exatas sobre como corrigir o problema nas distribuições.

Detalhes sobre a exploração da vulnerabilidade ainda não foram divulgados, sabe-se apenas que a vulnerabilidade é causada pelo acesso a uma área de memória já liberada (Use-After-Free) devido à falta de verificação da existência de um objeto antes de realizar operações com isso. O problema está relacionado ao fato de que na função smb2_tree_disconnect() a memória alocada para a estrutura ksmbd_tree_connect foi liberada, mas depois disso ainda havia um ponteiro usado ao processar certas solicitações externas contendo comandos SMB2_TREE_DISCONNECT.

Além da vulnerabilidade mencionada no ksmbd, 4 problemas menos perigosos também foram corrigidos:

  • ZDI-22-1688 - execução remota de código com direitos de kernel devido à falta de verificação do tamanho real dos dados externos no código de processamento de atributos do arquivo antes de copiá-los para o buffer alocado. O perigo da vulnerabilidade é mitigado pelo facto de o ataque só poder ser realizado por um utilizador autenticado.
  • ZDI-22-1691 - vazamento remoto de informações da memória do kernel devido à verificação incorreta dos parâmetros de entrada no manipulador de comandos SMB2_WRITE (o ataque só pode ser realizado por um usuário autenticado).
  • ZDI-22-1687 - negação de serviço remota por esgotamento da memória disponível no sistema devido à liberação incorreta de recursos no manipulador de comandos SMB2_NEGOTIATE (o ataque pode ser realizado sem autenticação).
  • ZDI-22-1689 - chamada remota para travar o kernel devido à falta de verificação adequada dos parâmetros do comando SMB2_TREE_CONNECT, levando à leitura de uma área fora do buffer (o ataque só pode ser realizado por um usuário autenticado ).

O suporte para execução de um servidor SMB usando o módulo ksmbd foi incluído no pacote Samba desde a versão 4.16.0. Ao contrário de um servidor SMB de espaço de usuário, o ksmbd é mais eficiente em termos de desempenho, consumo de memória e integração com recursos avançados do kernel. O Ksmbd é apresentado como uma extensão de alto desempenho e pronta para integração do Samba, integrando-se com ferramentas e bibliotecas do Samba conforme necessário. O código ksmbd foi escrito por Namjae Jeon da Samsung e Hyunchul Lee da LG, e mantido no kernel por Steve French da Microsoft, mantenedor dos subsistemas CIFS/SMB2/SMB3 no kernel Linux e membro de longa data da equipe de desenvolvimento do Samba, que contribuiu significativamente. à implementação de suporte a protocolos SMB/CIFS em Samba e Linux.

Fonte: opennet.ru

Adicionar um comentário