LinuxSegurança

PoC revela falha no ksmbd do kernel Linux e permite elevação de privilégio

O pesquisador Norbert Szetei publicou a prova de conceito final para a falha identificada como CVE 2025 37947 no módulo ksmbd do kernel Linux.

Continua depois da publicidade

Em termos práticos, essa PoC mostra uma escrita fora dos limites que um usuário autenticado pode ativar quando o compartilhamento SMB aceita streams de atributo estendido.

A seguir vou te explicar a raiz do problema, descrever o fluxo de exploração e vamos ver algumas medidas imediatas de defesa. Assim, você consegue agir sem perder tempo.

Contexto e teste de cenário

Szetei testou a PoC em um Ubuntu 22.04.5 LTS com kernel 5.15.0-153-generic e obteve uma cadeia completa até root.

Em outras palavras, a exploração não dependeu de condições de corrida complexas nem de fatores externos difíceis de reproduzir.

Pelo contrário, o pesquisador identificou uma forma de escrita fora dos limites previsível e repetível. Logo, ambientes que ativam streams de atributo estendido correm risco elevado, sobretudo quando acessos SMB são fornecidos a contas com privilégios básicos.

Causa raiz e ponto exato do bug

A falha está na função ksmbd_vfs_stream_write em fs/ksmbd/vfs.c. Quando um compartilhamento configurado como gravável usa streams_xattr, o código impõe o limite XATTR_SIZE_MAX igual a 0x10000.

Continua depois da publicidade

No entanto, o fluxo permite que *pos receba o valor 0x10000 e que count seja 8. Em seguida o memcpy escreve stream_buf[*pos] a partir do buffer de origem, o que resulta em oito bytes escritos além do fim do buffer.

Esse overflow controla oito bytes adjacentes à região alocada, fornecendo o primitivo que transforma um erro de cópia em corrupção de memória explorável.

Preparação do heap e transformação em privilégio

Bom para converter o overflow em uma elevação de privilégio confiável, Szetei manipulou o heap via alocador SLUB. Assim, ele posicionou a região corrompida ao lado de um objeto de ordem quatro em slab, neste caso estruturas de mensagens do kernel msg_msg.

Em seguida spray, free e reclaim produziram uma condição de use after free. Com isso o pesquisador obteve vazamentos de memória que revelaram ponteiros úteis para derrotar proteções como SMAP, SMEP e KASLR.

Finalmente a cadeia abriu caminho para pivot de pilha e execução de uma cadeia ROP com privilégios de kernel.

Continua depois da publicidade

Fluxo do exploit explicado passo a passo

Primeiro, o atacante preenche o heap com objetos controlados para preparar o layout. Depois ele libera determinados objetos para criar lacunas.

Em seguida o atacante força a escrita fora dos limites para corromper metadados de um objeto vizinho. Ao reaproveitar a lacuna, o objeto vítima é alocado no lugar corrompido, o que resulta em uso após liberação.

A partir daí surgem leituras arbitrárias ou vazamentos que permitem descobrir endereços do kernel. Com essas informações o atacante monta técnicas para contornar proteções de memória e, por fim, executa código arbitrário no contexto de kernel.

Sistemas afetados e condições de ataque

A vulnerabilidade CVE 2025 37947 atinge kernels Linux na faixa desde 5.15.0 até a linha 6.x sem patch.

É importante notar que o vetor exige apenas um usuário SMB autenticado e um compartilhamento com streams_xattr habilitado.

Em outras palavras caros leitores(a), qualquer infraestrutura que permita gravação em fluxos extendidos pode ser vulnerável. Por isso a ameaça não se restringe a ambientes atípicos; ambientes corporativos com ksmbd ativo e configurações padrão podem ficar expostos.

Avaliação do risco para operações

O risco sem sombra de dúvidas é alto, porque a primitiva de escrita fora dos limites é determinística. Em consequência, o atacante não depende de sorte para explorar a falha.

Além do mais, a simplicidade do requisito torna a exploração viável para invasores com credenciais válidas.

Portanto equipes de segurança e operações devem priorizar a resposta. Aplicar correções e isolar serviços vulneráveis reduz a chance de comprometimento total do host.

Mitigações imediatas e ações práticas

Administradores devem aplicar patches upstream ou atualizações da distribuição assim que estiverem disponíveis.

Enquanto o patch não chega, desligue streams_xattr nos compartilhamentos afetados ou remova permissões de escrita nos shares que não necessitam gravar fluxos extendidos.

Além disso, revise políticas de conta e minimize acessos SMB concedidos a usuários com pouca necessidade. Monitore logs do kernel e registros SMB à procura de operações de escrita em posições com valor 0x10000, pois essas entradas podem indicar tentativas de abuso.

Continua depois da publicidade

Como detectar tentativas de exploração

Inspecione /var/log/kern.log e os logs do serviço ksmbd em busca de mensagens estranhas ou falhas repentinas.

Ferramentas de integridade e sistemas de detecção de intrusão ajudam a perceber padrões de spray de heap e comportamentos incomuns de alocação.

Quando identificar anomalias, capture evidências e compartilhe indicadores de compromisso com equipes de resposta e fornecedores de segurança para acelerar a mitigação em larga escala.

Boas práticas para desenvolvimento e revisão de kernel

Reforce processos de revisão de código em áreas que lidam com dados vindos da rede. Valide limites de buffers e trate posições de escrita com verificações redundantes antes de copiar dados.

Por outro lado, inclua casos de teste específicos para fluxos extendidos e atributos estendidos durante a integração.

Fuzzing direcionado costuma descobrir combinações de parâmetros que escapam a análises superficiais, portanto integre esses testes na rotina de qualidade.

Impactos da CVE 2025 37947

A PoC para CVE 2025 37947 demonstra que um pequeno erro de cópia pode causar impacto enorme quando acontece em código exposto pela rede.

Em consequência, a defesa exige camadas: correções de código, configuração segura de serviços e monitoramento contínuo.

Aplique patch assim que possível, desative streams_xattr onde não for essencial e restrinja o acesso SMB enquanto a correção não estiver implantada. Assim você reduz risco imediato e ganha tempo para implementar proteções adicionais.

Publicidade

Felipe F

Profissional de tecnologia com formação em Análise e Desenvolvimento de Sistemas e MBA em Segurança da Informação. Atua na área de infraestrutura e segurança, escrevendo sobre ameaças cibernéticas, Linux e segurança digital.