CVE-2017-0143
Corrija agora. Ela está sob exploração confirmada pelo CISA e tem exploit funcional público.
Apply updates per vendor instructions.
Resumo
CVE-2017-0143 é uma das falhas de execução remota de código no servidor SMBv1 do Windows corrigidas pelo boletim MS17-010, a mesma leva que originou o exploit EternalBlue e permitiu a propagação do ransomware WannaCry em maio de 2017. É explorável sem autenticação contra qualquer host que exponha o serviço SMBv1 na rede, o que a torna crítica em qualquer ambiente com máquinas legadas ou mal segmentadas.
Detalhamento técnico
A falha está no driver srv.sys, que implementa o servidor SMBv1 no kernel do Windows. O boletim da Microsoft (MS17-010) agrupa CVE-2017-0143 com CVE-2017-0144, -0145, -0146 e -0148 sob a categoria de corrupção de memória por tratamento incorreto de pacotes SMBv1 especialmente manipulados (CWE-20, validação de entrada inadequada); o CVE-2017-0143 é descrito pela Microsoft como uma vulnerabilidade distinta das demais, mas do mesmo tipo — processamento incorreto de pacotes que leva à corrupção de memória no kernel.
Análises técnicas públicas sobre a família MS17-010 (a exemplo do exploit para CVE-2017-0148, que documenta a rotina SrvOs2FeaToNt) mostram o padrão geral: o servidor SMBv1 aloca buffers com base em campos de tamanho controlados pelo pacote (por exemplo, contadores de FEA — File Extended Attributes) e realiza operações de memmove/cópia sem validar corretamente os limites entre o tamanho declarado e o tamanho real dos dados, resultando em escrita fora dos limites do buffer (out-of-bounds write) em memória de kernel.
O atacante controla o conteúdo e os campos de tamanho dos pacotes de transação SMB enviados ao servidor, o que permite manipular a corrupção de memória para redirecionar execução no contexto do kernel (SYSTEM). Não há exigência de credenciais válidas em configurações padrão — o Metasploit demonstra que é possível se conectar à árvore IPC$ autenticando como usuário nulo ("\") para sondar e, no caso das variantes exploráveis, disparar a corrupção.
A Microsoft não publicou detalhes de código-fonte da falha; a mecânica exata de CVE-2017-0143 especificamente (em contraste com as outras quatro do mesmo boletim) não é detalhada publicamente com a mesma profundidade que CVE-2017-0144 (usada pelo EternalBlue) — a atribuição de qual CVE corresponde a qual rotina interna do driver varia entre análises de terceiros.
Como é explorada
O vetor é rede: o atacante envia pacotes SMBv1 manipulados diretamente à porta TCP 445 (ou 139) do host alvo, sem necessidade de autenticação válida em configuração padrão — o Metasploit demonstra a conexão como usuário nulo (\\) à IPC$. Não há pré-requisito de configuração não padrão: qualquer Windows com SMBv1 habilitado e acessível na rede é candidato. A complexidade de exploração é baixa a moderada — o WannaCry demonstrou exploração automatizada e auto-propagante em escala global usando exploits desta família (majoritariamente associados a CVE-2017-0144, mas MS17-010 cobre todo o grupo, incluindo 0143), e o exploit vazado do Equation Group (EternalBlue) tornou a técnica trivial de reutilizar.
Existe módulo Metasploit de detecção (smb_ms_17_010) que sonda o host via transação SMB na IPC$ e observa o código de erro retornado (STATUS_INSUFF_SERVER_RESOURCES indica não corrigido) — isso é usado tanto por defensores quanto por atacantes para varredura em massa antes de disparar o exploit real. Exploits públicos completos (ExploitDB 41987, ports do EternalBlue) demonstram execução de código no contexto de SYSTEM em Windows Server 2008 R2 x64 e versões relacionadas.
O resultado final da exploração bem-sucedida é execução arbitrária de código em contexto de kernel/SYSTEM, sem interação do usuário — controle total da máquina. A presença desta CVE no catálogo KEV da CISA confirma exploração ativa e contínua, e é historicamente associada a campanhas de ransomware (WannaCry, e posteriormente NotPetya reaproveitou a mesma técnica de propagação SMB).
Versões
Como se proteger
A correção oficial é aplicar o boletim MS17-010 da Microsoft, que também recebeu patches extraordinários para sistemas fora de suporte (Windows XP, Server 2003, Vista) devido à gravidade e ao impacto do WannaCry — consulte o Security Guidance da Microsoft para a KB específica de cada versão de Windows listada (Vista SP2; Server 2008 SP2 e R2 SP1; 7 SP1; 8.1; Server 2012 e R2; RT 8.1; 10 Gold/1511/1607; Server 2016), pois os números de KB variam por build e não foram fornecidos nas fontes consultadas — não infira um KB específico sem confirmar na página oficial.
Se a atualização não for possível de imediato, o paliativo real é desabilitar o SMBv1 por completo (via PowerShell Remove-WindowsFeature/Disable-WindowsOptionalFeature ou chave de registro, conforme documentação da Microsoft) e bloquear as portas TCP 139/445 no perímetro e entre segmentos internos. Esse controle tem custo operacional: sistemas e aplicações legadas que dependem de SMBv1 (algumas impressoras, NAS antigos, sistemas industriais e de imagem médica, como mostram os advisories ICS-CERT e Siemens ligados a este CVE) podem parar de funcionar até serem migrados para SMBv2/v3.
Filtrar tráfego SMB apenas por firewall perimetral não é mitigação suficiente — a exploração ocorre predominantemente lateral, dentro da rede interna, entre estações e servidores; segmentação de rede interna e desabilitação de SMBv1 endpoint a endpoint é necessária. Superfície de exposição direta à internet na porta 445 deve ser tratada como incidente, não como risco tolerável.
Como detectar
O sinal mais direto é a resposta a uma transação SMB manipulada na IPC$: hosts não corrigidos retornam STATUS_INSUFF_SERVER_RESOURCES ao pacote de sondagem (técnica usada pelo módulo auxiliar smb_ms_17_010 do Metasploit), enquanto hosts corrigidos retornam STATUS_ACCESS_DENIED ou STATUS_INVALID_HANDLE — essa mesma sondagem pode indicar reconhecimento por um atacante antes do ataque real. Em nível de rede, monitorar conexões SMBv1 anômalas na porta 445/139 vindas de hosts que não deveriam falar SMB, especialmente tentativas de logon nulo (usuário "\") seguidas de conexão à árvore IPC$, seguidas de pacotes de transação malformados ou de tamanho incomum. Não há um IOC de payload único e estável, porque exploits desta família (incluindo variantes do EternalBlue) evoluíram e foram reempacotados por múltiplos atores — ausência de assinatura confiável e universal é a realidade prática; a defesa mais confiável é verificar exposição e status de patch, não tentar detectar a exploração no tráfego.