top of page
Foto do escritorAndré Barreto dos Santos

Nova vulnerabilidade no módulo KSMBD do Kernel Linux

Atualizado: 24 de abr.


Nessa semana uma notícia abalou o mundo da segurança cibernética, uma nova vulnerabilidade crítica no kernel do Linux, mais especificamente no módulo do kernel "KSMBD", que implementa o protocolo SMB3 a nível de kernel.

A exploração dessa vulnerabilidade pode permitir a execução de códigos arbitrários por um usuário não autenticado, motivo pelo qual a vulnerabilidade, quando identificada no dia 22/12/2022 como "zero day", recebeu um score 10 na escala de pontuação CVSS, o nível mais alto de criticidade (ZDI-22-1690). Essa nova vulnerabilidade já recebeu 6 CVEs no Mitre, são elas: CVE-2022-47938, CVE-2022-47939, CVE-2022-47940, CVE-2022-47941, CVE-2022-47942 and CVE-2022-47943.

Informações confusas, incompletas e com erros


Apesar de toda a criticidade do assunto, nós encontramos muitas informações confusas, fragmentadas, incompletas e inclusive com erros, em fóruns, artigos e publicações em redes sociais, levando muitas pessoas ou a um desespero desnecessário ou a uma falsa sensação de segurança.

Essas informações divergentes levaram inclusive a criação e divulgação de scripts que prometem analisar se o kernel está vulnerável mas, no entando, o que vimos por aí são, em sua grande maioria, scripts que testam apenas uma parte do ambiente, gerando falsos positvos ou, ainda pior, falsos negativos, piorando ainda mais a confusão sobre o assunto.

Outro ponto percebido foi o entendimento de que o simples fato de atualizar o kernel para uma versão acima da 5.15.x resolveria. No entanto, a vulnerabilidade está presente em muitas releases das versões superiores também, o que tem gerado mais confusão e falsos negativos na análise do ambiente.


Como testar o seu kernel

As versões vulneráveis do kernel são 5.15.x (menor que 5.15.61), 5.16.x , 5.17.x, 5.18.x, 5.19.x (menor que 5.19.2).

Para analisar se o seu kernel é potencialmente vulnerável, o primeiro passo é ver se a versão está entre as que contem a vulnerabilidade. Para isso pode-se usar o comando: "uname -r".


Caso o seu kernel esteja em alguma das versões vulneráveis, o próximo passo é verificar se existe o módulo KSMBD. Para isso pode-se usar o comando: "modinfo ksmbd".

Se tiver um retorno como o abaixo, então o módulo existe.


Caso o módulo exista é preciso, então, verificar se ele está carregado no kernel, afinal, se o módulo vulnerável não for carregado, aquele código com problema não será executado. Para isso pode-se usar o comando: "lsmod | grep ksmbd".


O que fazer se meu Kernel estiver vulnerável?


Uma boa parte das pessoas não vai passar daqui, mas, caso você esteja na minoria que recebeu um retorno como o abaixo, então dispare o alarme!


Nesse ponto você tem 2 opções viáveis:

1) Atualizar o kernel para uma versão contendo a correção para essa vulnerabilidade;

2) Remover o módulo do kernel e, com isso, parar todo e qualquer serviço que use ele, mais especificamente o compartilhamento de arquivos (share) via SMB. Para isso pode-se usar o comando: "modprobe -r ksmbd" usando "sudo" ou uma conta com privilégios de root.


Automatizando o teste da vulnerabilidade


Para facilitar a análise da vulnerabilidade em seu kernel, disponibilizamos um script próprio que pode ser usado para fazer o teste de vulnerabilidade do kernel ao módulo KSMBD.

Você também pode fazer download do script no botão abaixo:

Na linha de comando do seu Linux você pode executar a seguinte sequência de comandos:

$ chmod 700 check_ksmbd_kernel_vulnerability.sh

$ ./check_ksmbd_kernel_vulnerability.sh


Recomendações finais

Independentemente do seu Kernel estar vulnerável agora ou não, é recomendado mantê-lo atualizado com os patches de segurança, assim como todo o restante do seu sistema operacional GNU/Linux, afinal, ele é um sistema operacional que encontra-se em plena ascensão em empresas do mundo todo e, sendo cada vez mais usado, consequentemente, também será cada mais visado por criminosos cibernéticos.

509 visualizações0 comentário

Comments


Post: Blog2_Post
bottom of page