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