CVE-2017-0148
Corrija agora. Ela está sob exploração confirmada pelo CISA e tem exploit funcional público.
Apply updates per vendor instructions.
Resumo
CVE-2017-0148 é uma falha de execução remota de código no servidor SMBv1 do Windows, corrigida no mesmo boletim MS17-010 que também remediou o conjunto de vulnerabilidades exploradas pelo EternalBlue (CVE-2017-0143 a 0146). É uma falha distinta dessas — mora em outra rotina do driver SMBv1 —, mas compartilha o mesmo vetor de ataque, a mesma superfície exposta e o mesmo patch. Importa hoje principalmente como item de higiene: qualquer ambiente que ainda tenha SMBv1 habilitado e exposto está no mesmo risco que gerou WannaCry e NotPetya, independentemente de qual CVE específica do pacote MS17-010 seja explorada.
Detalhamento técnico
A causa raiz documentada publicamente para CVE-2017-0148 está na função SrvOs2FeaToNt, dentro do driver de kernel srv.sys, responsável por converter listas de atributos estendidos (FEA) no formato OS/2 para o formato NT usado internamente pelo SMBv1. A rotina calcula offsets e tamanhos a partir de campos controlados pelo cliente na requisição SMB_COM_TRANSACTION (comando NT_TRANSACT relacionado a FEA) e executa cópias de memória (memmove) sem validar adequadamente que o tamanho informado cabe no buffer de destino. Isso é uma falha clássica de validação de entrada insuficiente (CWE-20, conforme classificação usada por fornecedores que reempacotam o conjunto de CVEs do MS17-010), que na prática se manifesta como escrita fora dos limites do buffer em espaço de kernel.
O atacante controla o conteúdo dos campos FEA enviados no pacote SMB — tamanho e dados da lista de atributos estendidos — que são interpretados diretamente pela rotina de conversão. Como o processamento ocorre em modo kernel (srv.sys), uma corrupção de memória bem-sucedida tem potencial de execução de código com privilégios de SYSTEM, não apenas do processo de servidor.
O CVSS 8.1 com AC:H (alta complexidade de ataque) reflete que, embora não exija autenticação nem interação do usuário, conseguir uma exploração confiável e repetível contra o layout de memória do kernel do Windows não é trivial — depende de versão/build específica do SO, alinhamento de heap e, em muitos PoCs públicos, de tentativa e erro ou de técnicas de heap grooming. Isso é coerente com o padrão observado nas demais falhas do MS17-010: PoCs funcionam de forma confiável em builds testadas, mas exigem adaptação para outras.
Como é explorada
O vetor é puramente de rede: o serviço SMBv1 escutando nas portas 445 (ou 139 sobre NetBIOS) precisa estar acessível ao atacante. Não é necessária autenticação prévia — sessões nulas ou anônimas para a árvore IPC$ já bastam para alcançar o código vulnerável, como demonstram os módulos de detecção do Metasploit para o conjunto MS17-010 (que fazem login com usuário vazio antes de sondar a falha). Não há interação do usuário: o pacote malformado por si só desencadeia a falha no processamento em kernel.
Exploits públicos existem, incluindo um PoC de execução remota específico para Windows Server 2008 R2 x64 que ataca justamente a rotina SrvOs2FeaToNt, além do módulo de varredura do Metasploit que identifica hosts vulneráveis ao conjunto MS17-010 (sem diferenciar qual CVE específica será usada para exploração final). A exploração completa (não apenas detecção) exige engenharia de payload compatível com a versão/arquitetura exata do alvo — 32 ou 64 bits, build do Windows — porque o layout de memória do kernel varia entre elas.
A CISA lista CVE-2017-0148 no catálogo KEV com exploração confirmada em ambiente real, com prazo de correção definido (ação: aplicar atualizações conforme instrução do fornecedor). O boletim MS17-010 como conjunto ficou historicamente associado às campanhas WannaCry e NotPetya de 2017, embora a exploração massiva desses worms tenha se apoiado predominantemente nas CVEs do EternalBlue (0143–0146); não há confirmação nas fontes consultadas de que CVE-2017-0148 especificamente tenha sido o vetor usado nesses casos — trate a associação como contextual (mesmo patch, mesma superfície), não como equivalência comprovada.
Versões
Como se proteger
A correção oficial veio pelo boletim de segurança MS17-010, publicado pela Microsoft em março de 2017, cobrindo todas as versões listadas (Vista SP2; Server 2008 SP2 e R2 SP1; 7 SP1; 8.1; Server 2012 Gold e R2; RT 8.1; 10 Gold/1511/1607; Server 2016). As fontes consultadas não trazem os números de KB individuais por versão — para aplicar o patch corretamente, confirme o KB específico do MS17-010 correspondente à sua build junto ao catálogo oficial da Microsoft antes de fechar o ticket como remediado.
O paliativo real e mais eficaz quando o patch não pode ser aplicado imediatamente é desabilitar o servidor SMBv1 por completo (via recurso do Windows ou chave de registro que desativa o protocolo) e bloquear as portas 445/139 no perímetro e entre segmentos de rede. Isso neutraliza toda a família de vulnerabilidades do MS17-010, não só esta CVE, ao custo de perder compatibilidade com sistemas legados que dependam de SMBv1 (impressoras antigas, NAS obsoletos, versões muito antigas de aplicações). Para sistemas que não podem abandonar SMBv1, isolamento de rede rígido — sem exposição a segmentos não confiáveis ou à internet — é o controle compensatório mínimo aceitável.
O que não funciona: assumir que atualizar apenas contra "o EternalBlue" (CVE-2017-0144) resolve o problema. O boletim MS17-010 cobre múltiplas falhas distintas no mesmo componente, e aplicar patch parcial ou apenas mitigar uma delas deixa a superfície SMBv1 exposta às demais, incluindo esta.
Como detectar
Não há assinatura de rede única e confiável publicamente documentada para esta CVE isolada — as ferramentas de detecção disponíveis (como o módulo de varredura do Metasploit para MS17-010) identificam a ausência do patch de forma agregada, testando a resposta a uma transação SMB_COM_TRANSACTION contra a árvore IPC$ com FID inválido, sem diferenciar qual das CVEs do boletim seria explorável. Em ambientes com SMBv1 ainda ativo, monitore logs de autenticação anônima/nula seguida de comandos NT_TRANSACT ou SMB_COM_TRANSACTION incomuns, e presença de indicadores associados ao implante DOUBLEPULSAR (documentado por pesquisadores em conexão com exploits do conjunto EternalBlue/MS17-010), como sinal de exploração pós-comprometimento na mesma família de falhas.