← back
CVE-2018-7445criticalunder attackCWE-119

CVE-2018-7445

90Vexday Risk Score

Prioritize patching. It under exploitation confirmed by CISA and has a public proof of concept.

ssvc Actcvss 9.8epss 61%
from disclosure to weapon0 days
Published on NVDMar 19
1st PoCMar 15
CISA KEV+1634d
exploitation probability
61%top 1% of all CVEs
observed exploitation
yesCISA + VulnCheck
3 public exploit(s)
Action required by CISAfederal deadline: 2022-09-29

Apply updates per vendor instructions.

Summary

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.

Technical detail

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.

How it’s exploited

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.

Versions

Affected
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).
Fixed in
RouterOS 6.41.3 e 6.42rc27 e versões posteriores.

How to protect

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.

How to detect

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.

Researched and written with AI from the vendor advisory and public analysis, with the sources above. Always confirm the fixed version in the official advisory before acting.
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
Affected products
n/a · n/a
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.