Eles detectaram uma vulnerabilidade no ksmbd no Linux Kernel

vulnerabilidade

Se exploradas, essas falhas podem permitir que invasores obtenham acesso não autorizado a informações confidenciais ou geralmente causem problemas

Recentemente foi divulgada a informação de que uma vulnerabilidade do kernel do Linux foi descoberta com uma pontuação CVSS de 10 no servidor SMB, dando a um usuário não autenticado a capacidade de executar código remotamente.

O bug encontrado permite que atacantes remotos executem código arbitrário nas instalações afetadas. A autenticação não é necessária para explorar esta vulnerabilidade, mas apenas os sistemas com ksmbd habilitado são vulneráveis.

A falha específica existe no processamento dos comandos SMB2_TREE_DISCONNECT. O problema resulta de não validar a existência de um objeto antes de executar operações nesse objeto. Um invasor pode explorar essa vulnerabilidade para executar código no contexto do kernel.

DETALHES DA VULNERABILIDADE
Esta vulnerabilidade permite que invasores remotos executem código arbitrário em instalações afetadas do Kernel do Linux. A autenticação não é necessária para explorar esta vulnerabilidade, mas apenas os sistemas com ksmbd habilitado são vulneráveis.

A falha específica existe no processamento dos comandos SMB2_TREE_DISCONNECT. O problema é causado pela falta de validação da existência de um objeto antes de executar operações no objeto. Um invasor pode explorar essa vulnerabilidade para executar código no contexto do kernel.

É mencionado que dependendo do tipo de solicitação SMB, cada nova thread pode decidir passar comandos para o espaço do usuário (ksmbd.mountd); atualmente, os comandos DCE/RPC são identificados para serem manipulados pelo espaço do usuário. Para fazer melhor uso do kernel do Linux, decidiu-se tratar os comandos como itens de trabalho e executá-los nos manipuladores de encadeamentos ksmbd -io kworker.

Isso permite que os gerentes multiplexem porque o kernel cuida de iniciar threads de trabalho adicionais se a carga aumentar e vice-versa, se a carga diminuir, ele mata os threads de trabalho adicionais.

Quando o daemon do servidor é iniciado, ele inicia um fork thread (ksmbd/nome da interface) no momento da inicialização e abre uma porta 445 dedicada para atender às solicitações SMB. Cada vez que novos clientes fazem uma solicitação, o forker thread aceita a conexão do cliente e cria um novo thread para um canal de comunicação dedicado entre o cliente e o servidor. Isso permite que solicitações SMB (comandos) de clientes sejam processadas em paralelo e permite que novos clientes estabeleçam novas conexões.

ksmbd levantou bandeiras vermelhas entre alguns usuários que discutiram sua fusão no ano passado. A SerNet, uma empresa alemã de computadores que oferece sua própria versão do Samba, disse em um blog que o ksmbd era incrível, mas parecia um pouco imaturo. Além disso, a equipe Samba+ da SerNet declarou em um post de blog que o valor de adicionar um servidor SMB ao espaço do kernel pode não valer o risco de "espremer o último pedaço de desempenho do material disponível".

Felizmente, se você não está executando o módulo ksmbd "experimental" da Samsung, conforme descrito pelo pesquisador de segurança Shir Tamari no Twitter, e manteve o Samba, você está perfeitamente seguro. “ksmbd é novo; a maioria dos usuários ainda usa o Samba e não é afetada. Basicamente, se você não estiver executando servidores SMB com ksmbd, aproveite seu fim de semana”, twittou Tamari.

De acordo com a Iniciativa Dia Zero, que revelou a vulnerabilidade ksmbd, a falha use-after-free existe no processamento dos comandos SMB2_TREE_DISCONNECT. De acordo com o ZDI, o problema é causado pelo ksmbd não validar a existência de objetos antes de executar operações neles.

Para quem usa o ksmbd, existe uma solução além de mudar para o Samba: atualize para o kernel Linux versão 5.15.61, lançado em agosto, ou posterior. Esta atualização do kernel também corrige alguns outros problemas no ksmbd: uma leitura fora dos limites para SMB2_TREE_CONNECT, que de acordo com a nota do patch pode permitir que solicitações inválidas não enviem mensagens e um vazamento de memória em smb2_handle_negotiate causando um free. memória.

finalmente se você está interessado em saber mais sobre isso, você pode verificar os detalhes no link a seguir.