← voltar
CVE-2018-7445criticalsob ataqueCWE-119

CVE-2018-7445

90Vexday Risk Score

Priorize a correção. Ela está sob exploração confirmada pelo CISA e tem prova de conceito pública.

ssvc Actcvss 9.8epss 61%
da publicação à arma0 dias
Publicada no NVD19 de mar.
1ª PoC15 de mar.
CISA KEV+1634d
probabilidade de exploração
61%top 1% das CVEs
exploração observada
simCISA + VulnCheck
3 exploit(s) público(s)
Ação exigida pela CISAprazo federal: 2022-09-29

Apply updates per vendor instructions.

Resumo

Overflow de pilha no serviço SMB do MikroTik RouterOS, disparado ao processar mensagens de session request do NetBIOS, antes de qualquer autenticação. Qualquer atacante com acesso de rede à porta SMB (139/TCP) do dispositivo pode executar código arbitrário no sistema, sem credenciais. Está no catálogo KEV da CISA com exploração confirmada e PoC pública funcional, o que a torna crítica em qualquer ambiente que exponha SMB do RouterOS à rede.

Detalhamento técnico

A falha (CWE-121, stack-based buffer overflow; a CISA classifica como CWE-119) está na função que faz o parsing de nomes NetBIOS dentro do binário SMB do RouterOS — no exemplo da Core Security, localizada em 0x08054607 no binário x86 da versão 6.40.5. A função recebe dois buffers alocados na pilha: origem e destino. Ela lê o primeiro byte do buffer de origem e usa esse valor como tamanho de uma cópia byte a byte para o destino; ao final do bloco, lê o próximo byte como novo tamanho e repete o loop até encontrar um tamanho zero, concatenando os nomes com um separador.

O problema é a ausência total de validação de que a soma dos tamanhos copiados cabe no buffer de destino, que também está na pilha. Como o atacante controla integralmente o conteúdo da mensagem NetBIOS session request — incluindo os bytes de tamanho e os dados que serão copiados — ele controla o tamanho e o conteúdo do overflow, sobrescrevendo variáveis locais, ponteiros salvos e o endereço de retorno da função.

O overflow ocorre na fase de estabelecimento de sessão NetBIOS, uma etapa que precede qualquer troca de credenciais SMB. Não há checagem de autenticação antes que o parsing vulnerável seja executado, então o vetor é acessível a qualquer cliente que consiga abrir uma conexão TCP na porta do serviço.

Como é explorada

O vetor é uma conexão TCP direta à porta 139 (SMB/NetBIOS) do RouterOS. Não é necessária autenticação, conta de usuário, nem configuração não padrão — basta o serviço SMB estar habilitado e acessível pela rede (interna, WAN ou internet, dependendo de como o dispositivo está exposto). A exploração publicada pela Core Security demonstra o processo completo em dois passos: primeiro uma conexão é usada para armazenar um payload grande no heap, que funciona como NOP sled e contém o shellcode; a conexão original é fechada pelo servidor após esse envio, exigindo abertura de uma segunda conexão para enviar a mensagem NetBIOS session request que efetivamente dispara o overflow e desvia a execução para o payload no heap.

No caso testado (Cloud Hosted Router em x86), os pesquisadores tiveram que contornar DEP via uma cadeia ROP que chama mprotect() para tornar a região do heap executável, e observaram que, embora pilha e bibliotecas tivessem ASLR, o endereço base do heap não era randomizado — o que tornou a técnica de armazenar o payload no heap e saltar para um endereço fixo extremamente confiável nos testes deles. A exploração em outras arquiteturas/dispositivos MikroTik exige adaptação de offsets e gadgets ROP específicos ao binário SMB daquela plataforma, mas o mecanismo de fundo — controle total do conteúdo copiado via o parser de nomes NetBIOS — é o mesmo.

O resultado final documentado é execução de código arbitrário reutilizando o próprio socket da conexão para spawnar um shell (execve de /bin/sh), dando ao atacante acesso interativo ao roteador. A presença no catálogo KEV da CISA confirma exploração ativa em ambientes reais, e existe exploit público (Exploit-DB #44290) replicando a PoC da Core Security.

Versões

Afetadas
Todas as arquiteturas e dispositivos executando RouterOS em versões anteriores a 6.41.3 (branch estável) e a 6.42rc27 (branch de testes/RC).
Corrigidas em
RouterOS 6.41.3 e 6.42rc27 e versões posteriores.

Como se proteger

A correção do fornecedor está nas versões RouterOS 6.41.3 e 6.42rc27 e posteriores — atualizar é a mitigação definitiva. Não há detalhamento na fonte sobre correção retroativa em outros branches além desses dois.

Se a atualização não for imediatamente viável, o próprio MikroTik recomenda desabilitar o serviço SMB no dispositivo como paliativo. O custo é a perda de qualquer funcionalidade de compartilhamento de arquivos via SMB que dependa desse serviço no RouterOS — geralmente aceitável, já que SMB em equipamento de borda/roteador raramente é uma função crítica de negócio.

Como mitigação compensatória adicional, restringir o acesso à porta 139/TCP por firewall (bloqueio de origem WAN, ACLs) reduz a superfície de exposição, mas não elimina o risco de um atacante já dentro da rede local. Não existe mitigação via 'apenas usar autenticação' — o overflow ocorre antes da fase de autenticação, então esse controle não se aplica aqui.

Como detectar

Tentativas de exploração deixam como sinal de rede conexões na porta 139/TCP com mensagens NetBIOS session request contendo payloads anormalmente grandes (o PoC público envia blocos repetidos da ordem de milhares de bytes seguidos de shellcode) e um padrão de duas conexões sequenciais — a primeira usada para posicionar dados no heap e fechada pelo servidor, a segunda para disparar o overflow. Monitoramento de tráfego SMB voltado a dispositivos MikroTik pode buscar mensagens de sessão fora do tamanho e formato esperados para nomes NetBIOS legítimos, e crashes ou reinícios inesperados do serviço SMB no RouterOS são indício de tentativa (bem ou mal sucedida) de exploração.

Pesquisado e redigido com IA a partir do advisory do fornecedor e de análises públicas, com as fontes acima. Confira sempre a versão corrigida no advisory oficial antes de agir.
A buffer overflow was found in the MikroTik RouterOS SMB service when processing NetBIOS session request messages. Remote attackers with access to the service can exploit this vulnerability and gain code execution on the system. The overflow occurs before authentication takes place, so it is possible for an unauthenticated remote attacker to exploit it. All architectures and all devices running RouterOS before versions 6.41.3/6.42rc27 are vulnerable.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Produtos afetados
n/a · n/a
⚠ Recursos públicos, para você avaliar a exposição de sistemas que controla ou está autorizado a testar. Teste apenas com autorização.