CVE-2017-12238
Prioriza la corrección. Ella está bajo explotación confirmada por CISA.
Apply updates per vendor instructions.
Resumen
Falha de gerenciamento de memória (CWE-399) no código de VPLS do Cisco IOS que afeta especificamente placas de linha C6800-16P10G/C6800-16P10G-XL em switches Catalyst 6800 com Supervisor Engine 6T. Um atacante adjacente e não autenticado pode forçar a criação massiva de entradas MAC geradas por VPLS e travar a placa de linha, causando DoS. O CVSS moderado (6.5-7.4 dependendo da versão do vetor) esconde um requisito de topologia bem restrito: só importa para quem roda VPLS nessa combinação exata de hardware.
Detalle técnico
A vulnerabilidade está no processamento VPLS (Virtual Private LAN Service) do Cisco IOS, especificamente na forma como as placas de linha C6800-16P10G e C6800-16P10G-XL gerenciam a tabela de endereços MAC quando essas entradas são geradas via pseudowires VPLS. O Cisco Bug ID CSCva61927 documenta um problema de gerenciamento de memória (CWE-399) — a Cisco não detalhou publicamente o mecanismo interno exato (se é exaustão de heap, leak ou overflow de estrutura), apenas que o crash é consequência direta do volume de entradas MAC criadas pelo tráfego VPLS.
O atacante não controla código nem payload arbitrário: ele controla o volume e a taxa de geração de endereços MAC aprendidos via VPLS na interface core-facing MPLS da placa afetada. Ao inflar artificialmente essa tabela, esgota-se um recurso interno do processo que gerencia notificações de MAC na placa de linha, levando ao esgotamento de stack de um processo interno.
O indicador de exploração publicado pela Cisco é bem específico: o log do dispositivo registra a mensagem %SYS-DFC1-6-STACKLOW: Stack for process earl_ntfy_dm_thread running low, 0/26000, e o arquivo de crashinfo da placa mostra o processo earl_ntfy_dm_thread com uso de stack igual ao disponível (bytes used = bytes available). Isso indica claramente esgotamento de stack como causa imediata do crash, não corrupção de memória exploravel para execução de código — o impacto é unicamente de disponibilidade (Integrity e Confidentiality permanecem intactos no vetor CVSS: C:N/I:N/A:H).
A Cisco confirmou que Cisco IOS XE, IOS XR e NX-OS não são afetados — o bug é específico da implementação de VPLS no IOS clássico combinada com o hardware dessas placas de linha.
Cómo se explota
O vetor de ataque é adjacente (AV:A) — o atacante precisa estar na mesma rede L2/MPLS que o dispositivo vulnerável, tipicamente como peer VPLS ou dentro do domínio de camada 2 atendido pela pseudowire. Não há necessidade de autenticação (PR:N) nem de interação do usuário (UI:N), e a complexidade de ataque é baixa (AC:L): basta gerar um volume grande de endereços MAC que sejam aprendidos via VPLS pela placa de linha alvo.
Pré-condições reais que reduzem drasticamente a superfície: o dispositivo precisa ser um Catalyst 6800 com Supervisor Engine 6T, ter instalada uma placa de linha C6800-16P10G ou C6800-16P10G-XL, essa placa precisa ser a interface core-facing MPLS, e o VPLS precisa estar configurado e ativo (verificável via show vfi). Isso não é uma vulnerabilidade genérica de qualquer switch Cisco — é limitada a uma combinação específica de chassi, supervisor, placa de linha e configuração de serviço.
A CISA incluiu a CVE no catálogo KEV (adicionada em 2022-03-03, com due date 2022-03-24), confirmando exploração ativa observada, embora não haja detalhamento público do ator ou campanha. Não há indicação de uso em ransomware. O resultado da exploração bem-sucedida é sempre DoS — crash e reinicialização da placa de linha afetada, não comprometimento de dados ou execução remota de código.
Versiones
Cómo protegerse
A Cisco não publicou nenhum workaround para esta vulnerabilidade — o advisory afirma explicitamente 'There are no workarounds that address this vulnerability'. A única remediação é aplicar a atualização de software fixa listada no advisory oficial (a Cisco não detalhou no texto disponível os números exatos de release fixados por trem de IOS; consulte a seção 'Fixed Software' do advisório cisco-sa-20170927-vpls para a versão exata aplicável ao seu hardware).
Como não há mitigação de configuração, controles compensatórios são limitados: restringir quem pode ser peer VPLS adjacente à interface core-facing MPLS reduz a superfície de exposição, mas não elimina o risco se o atacante já está dentro do domínio L2/MPLS confiável (que é justamente o cenário assumido no vetor AV:A). Monitorar overflow ou crescimento anômalo na tabela MAC (show mac address-table count) pode servir de alerta prévio, mas não impede o crash.
O mito a evitar: acreditar que desativar temporariamente apenas parte do VPLS ou reduzir MTU/filtros de tráfego resolve — a Cisco não valida nenhum workaround, e o problema é de gerenciamento de memória interno à placa de linha, não de filtragem de tráfego passível de ACL.
Cómo detectar
O indicador mais confiável é o log do sistema mostrando a mensagem %SYS-DFC1-6-STACKLOW: Stack for process earl_ntfy_dm_thread running low, 0/26000, gerada quando a exploração já está em curso ou consumada. Após um crash, o arquivo de crashinfo da placa de linha mostra o processo earl_ntfy_dm_thread com stack 'bytes used' igual a 'bytes available', confirmando esgotamento de stack como causa. Não há assinatura de tráfego de rede publicada para detectar a tentativa antes do crash — a única forma preventiva é monitorar o crescimento da tabela MAC associada a VPLS (via show mac address-table e show vfi) para taxas anômalas de aprendizado.