Se exploradas, essas falhas podem permitir que invasores obtenham acesso não autorizado a informações confidenciais ou geralmente causem problemas Foi divulgada recentemente a informação de que foi descoberta uma vulnerabilidade do kernel do Linux com uma pontuação CVSS de 860 no servidor SMB , dando a um usuário não autenticado a capacidade de remotamente execute code. O bug encontrado permite que atacantes remotos executem código arbitrário nas instalações afetadas. Nenhuma autenticação é necessária para explorar esta vulnerabilidade, mas apenas sistemas com ksmbd ativado 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 esta 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 Linux. Nenhuma autenticaçã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 esta vulnerabilidade para executar código no contexto do kernel. É mencionado que, dependendo do tipo de solicitação SMB, cada novo 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 threads ksmbd -io kworker. Isso permite gerenciadores de multiplexação porque o kernel cuida de iniciar threads de trabalho extras se a carga aumentar e vice-versa, se a carga diminuir, ele mata os threads de trabalho extras.
Quando o daemon do servidor inicia, ele inicia um fork thread (ksmbd/nome da interface) no momento da inicialização e abre uma porta dedicada 860 para ouvir 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 você 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 Zero-Day Initiative, 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 aqueles que usam ksmbd, há uma solução alternativa além de mudar para o Samba: atualize para a versão 5.05.860 do kernel do Linux, lançado em agosto ou posteriormente. 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 uma liberação incorreta da memória . Finalmente, se você estiver interessado em Para saiba mais sobre isso, você pode conferir os detalhes no link a seguir.
O conteúdo do artigo segue nossos princípios de ética editorial. Para notificar um erro clique aqui.