Vulnerabilidades no módulo ksmbd do kernel do Linux que permitem a execução remota de código

No módulo ksmbd, que oferece uma implementação de um servidor de arquivos baseado no protocolo SMB embutido no kernel Linux, foram identificadas 14 vulnerabilidades, quatro das quais permitem executar remotamente o código com direitos de kernel. O ataque pode ser realizado sem autenticação, bastando que o módulo ksmbd esteja ativado no sistema. Os problemas aparecem a partir do kernel 5.15, que incluía o módulo ksmbd. As vulnerabilidades foram corrigidas nas atualizações do kernel 6.3.2, 6.2.15, 6.1.28 e 5.15.112. Você pode acompanhar as correções nas distribuições nas seguintes páginas: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Gentoo, Arch.

Problemas identificados:

  • CVE-2023-32254, CVE-2023-32250, CVE-2023-32257, CVE-2023-32258 - execução remota de código com direitos de kernel devido à falta de bloqueio de objeto adequado ao processar solicitações externas contendo SMB2_TREE_DISCONNECT, SMB2_SESSION_SETUP, SMB2_LOGOFF e SMB2_CLOSE, que resulta em uma condição de corrida explorável. O ataque pode ser realizado sem autenticação.
  • CVE-2023-32256 – Vazamento de conteúdo de regiões de memória do kernel devido a uma condição de corrida durante o processamento dos comandos SMB2_QUERY_INFO e SMB2_LOGOFF. O ataque pode ser realizado sem autenticação.
  • CVE-2023-32252, CVE-2023-32248 - Negação de serviço remota devido a uma desreferência de ponteiro NULL ao processar os comandos SMB2_LOGOFF, SMB2_TREE_CONNECT e SMB2_QUERY_INFO. O ataque pode ser realizado sem autenticação.
  • CVE-2023-32249 – Possibilidade de sequestro de sessão com um usuário devido à falta de isolamento adequado ao lidar com um ID de sessão no modo multicanal.
  • CVE-2023-32247, CVE-2023-32255 – Negação de serviço devido a vazamento de memória ao processar o comando SMB2_SESSION_SETUP. O ataque pode ser realizado sem autenticação.
  • CVE-2023-2593 é uma negação de serviço devido ao esgotamento da memória disponível, causada por uma falha de memória ao processar novas conexões TCP. O ataque pode ser realizado sem autenticação.
  • CVE-2023-32253 Uma negação de serviço devido a um impasse ocorre ao processar o comando SMB2_SESSION_SETUP. O ataque pode ser realizado sem autenticação.
  • CVE-2023-32251 – falta de proteção contra ataques de força bruta.
  • CVE-2023-32246 Um usuário do sistema local com direito de descarregar o módulo ksmbd pode executar o código no nível do kernel Linux.

Além disso, foram identificadas mais 5 vulnerabilidades no pacote ksmbd-tools, que inclui utilitários para gerenciar e trabalhar com ksmbd, executados no espaço do usuário. As vulnerabilidades mais perigosas (ZDI-CAN-17822, ZDI-CAN-17770, ZDI-CAN-17820, CVE ainda não atribuídas) permitem que um invasor remoto e não autenticado execute seu código com direitos de root. As vulnerabilidades são causadas pela falta de verificação do tamanho dos dados externos recebidos antes de copiá-los para o buffer no código de serviço WKSSVC e nos manipuladores de opcode LSARPC_OPNUM_LOOKUP_SID2 e SAMR_OPNUM_QUERY_USER_INFO. Mais duas vulnerabilidades (ZDI-CAN-17823, ZDI-CAN-17821) podem levar à negação de serviço remota sem autenticação.

Ksmbd é apresentado como uma extensão Samba de alto desempenho e pronta para integração que se integra às ferramentas e bibliotecas Samba conforme necessário. O suporte para execução de um servidor SMB usando o módulo ksmbd está presente no pacote Samba desde a versão 4.16.0. Ao contrário de um servidor SMB executado no espaço do 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 é codificado por Namjae Jeon da Samsung e Hyunchul Lee da LG e mantido como parte do 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, fez contribuições significativas para a implementação do suporte aos protocolos SMB/CIFS no Samba e Linux.

Além disso, duas vulnerabilidades podem ser observadas no driver gráfico vmwgfx, usado para implementar aceleração 3D em ambientes VMware. A primeira vulnerabilidade (ZDI-CAN-20292) permite que um usuário local aumente seus privilégios no sistema. A vulnerabilidade se deve à falta de verificação do estado de um buffer antes de liberá-lo ao processar um vmw_buffer_object, o que poderia levar a uma chamada dupla para a função free. A segunda vulnerabilidade (ZDI-CAN-20110) leva ao vazamento do conteúdo da memória do kernel devido a erros na organização do bloqueio de objetos GEM.

Fonte: opennet.ru

Adicionar um comentário