CVE-2020-11899
Prioritize patching. It under exploitation confirmed by CISA.
Apply updates per vendor instructions.
Summary
CVE-2020-11899 é uma leitura fora dos limites de memória (out-of-bounds read) no processamento de pacotes IPv6 pela pilha Treck TCP/IP, um componente embarcado licenciado por dezenas de fabricantes de equipamentos de rede, industriais e médicos. Faz parte do conjunto Ripple20 (19 CVEs) divulgado pela JSOF em junho de 2020. O CVSS 5.4 já reflete uma limitação importante que a manchete 'out-of-bounds read' esconde: o vetor é AV:A (rede adjacente), não internet aberta, e o impacto de confidencialidade é nulo (C:N) — o dado lido fora dos limites tipicamente trava o processo, não exfiltra informação útil.
Technical detail
A falha está na rotina de parsing de pacotes IPv6 da pilha Treck (CWE-125, Out-of-bounds Read; a Cisco classifica como CWE-20, Improper Input Validation, tratando a causa raiz como falta de validação de comprimento/offset em campos do cabeçalho ou extensões IPv6). O código lê um índice ou tamanho controlado pelo pacote sem checar contra os limites reais do buffer alocado, resultando em leitura de memória adjacente.
O atacante controla o conteúdo do pacote IPv6 malformado — cabeçalhos de extensão, comprimentos declarados ou campos que a rotina usa para calcular um offset de leitura. Como a Treck é distribuída como código-fonte ou biblioteca estática/dinâmica para ser compilada dentro do firmware de cada fabricante, o comportamento exato (onde o buffer está alocado, o que fica na memória adjacente, se o processo trava ou apenas prossegue com dados corrompidos) varia por produto e opções de build — não existe um binário único de referência.
A JSOF batizou esse conjunto de bugs de Ripple20 justamente porque o mesmo código-fonte se propagou, com o tempo, para stacks derivadas (como o KASAGO da Zuken Elmic) e para produtos de fornecedores que nem sempre sabem que embutem Treck — um problema clássico de visibilidade de cadeia de suprimentos de software.
How it’s exploited
Pré-requisito real: AV:A significa que o atacante precisa estar na mesma rede local (ou segmento lógico adjacente, por exemplo mesma VLAN ou trecho tunelado) do dispositivo vulnerável — não é explorável a partir da internet sem antes obter posição de rede adjacente. Não exige autenticação nem interação do usuário (PR:N, UI:N): basta enviar um pacote IPv6 malformado ao dispositivo.
O resultado típico, segundo o próprio vetor CVSS (C:N, I:L, A:L), é negação de serviço — o processo que lê fora dos limites trava ou reinicia — com impacto marginal em integridade. Isso contrasta com outras CVEs do mesmo pacote Ripple20 (como CVE-2020-11896 ou CVE-2020-11901) que a JSOF e a Cisco classificam com potencial de execução remota de código; CVE-2020-11899 especificamente não tem, nas fontes analisadas, demonstração pública de RCE.
A CISA lista esta CVE no catálogo KEV, o que indica exploração confirmada em algum contexto real, mas as fontes consultadas não detalham campanha, ator ou setor específico da exploração observada — trate a presença no KEV como confirmação de risco ativo, não como descrição do ataque.
Versions
How to protect
A correção definitiva é atualizar a pilha Treck para versão igual ou superior a 6.0.1.66 (a descrição oficial do fornecedor situa o corte exatamente aí). O CERT/CC recomenda, para cobrir o conjunto completo de vulnerabilidades Ripple20 e não apenas esta CVE, atualizar para 6.0.1.67 ou posterior. Como a Treck é embarcada e recompilada por cada fabricante, a atualização não é algo que o operador aplica diretamente: é necessário contatar o vendor do equipamento (roteador, switch, dispositivo médico, controlador industrial) para obter o firmware que já incorpora o patch — a Cisco, por exemplo, publicou versões corrigidas por linha de produto no seu próprio advisory.
Se a atualização de firmware não estiver disponível, não existe workaround que elimine a falha (a Cisco afirma explicitamente 'no workarounds available' para este conjunto). Os controles compensatórios são de rede: normalizar ou descartar fragmentos IPv6 malformados, bloquear cabeçalhos de roteamento IPv6 obsoletos e tunelamento não necessário, e restringir o alcance de rede do dispositivo afetado para reduzir a exposição a atacantes na mesma rede adjacente — já que o vetor exige adjacência, segmentação de rede (VLANs isoladas, ACLs) é o controle mais efetivo disponível sem patch.
Mito a descartar: assumir que 'está numa VLAN isolada, então não corre risco' ignora que muitos dispositivos IoT/OT ficam na mesma VLAN de gestão ou operação que outros hosts controlados por terceiros (contratados, integradores) — adjacência de rede é mais fácil de obter do que parece em ambientes industriais e hospitalares.
How to detect
Não há assinatura pública específica e confirmada para CVE-2020-11899 nas fontes consultadas. O CERT/CC publicou um conjunto de regras Suricata (vu-257161.rules, repositório GitHub do CERTCC) para o conjunto Ripple20, mas o exemplo documentado publicamente (tunelamento IP-in-IP com fragmentos) é voltado para CVE-2020-11896 e CVE-2020-11900, não para esta CVE. Na ausência de assinatura dedicada, o sinal prático é indireto: pacotes IPv6 malformados ou com cabeçalhos de extensão inconsistentes chegando de hosts na mesma rede adjacente ao dispositivo, seguidos de reinício ou queda de conectividade do equipamento — sinal de DoS, não de leitura de dados sensíveis.