← voltar
CVE-2018-0174highsob ataqueCWE-20

CVE-2018-0174

51Vexday Risk Score

Priorize a correção. Ela está sob exploração confirmada pelo CISA.

ssvc Actcvss 8.6epss 7.6%
da publicação à arma
Publicada no NVD28 de mar.
CISA KEV+1436d
probabilidade de exploração
7.6%top 6% das CVEs
exploração observada
simCISA + VulnCheck
Ação exigida pela CISAprazo federal: 2022-03-17

Apply updates per vendor instructions.

Resumo

Falha de validação de entrada (CWE-20) na funcionalidade de encapsulamento de DHCP option 82 do Cisco IOS e IOS XE, que permite a um atacante remoto não autenticado provocar reload do dispositivo (DoS) enviando um pacote DHCPv4 malformado. O impacto real depende de uma configuração específica de relay agent que não é padrão na maioria dos ambientes — mas onde existe (redes de acesso, campus, ambientes industriais com switches Rockwell/Allen-Bradley baseados em IOS), a exploração é trivial e não exige autenticação.

Detalhamento técnico

A vulnerabilidade está no código do DHCP relay agent do IOS/IOS XE responsável por encapsular a informação de option 82 recebida de outros relay agents. Segundo a análise da Tenable (TRA-2018-06), quando o relay agent recebe um DHCPv4 com option 82 já presente, ele precisa mover (memmove) o option 82 original para abrir espaço para o novo option 82 que vai inserir, encapsulando o original como suboption. Para calcular o tamanho desse memmove, o código faz a aritmética pEndOfMsg - pEndOfEncapsulatedOpt82.

O bug (CVE-2018-0174, identificado pela Tenable como 'Bad Pointer Arithmetic #1') está em que pEndOfEncapsulatedOpt82 pode acabar sendo maior que pEndOfMsg — um resultado negativo que, tratado como aritmética de ponteiros/inteiro sem sinal, gera um valor de tamanho absurdamente grande para o memmove. O processo tenta mover essa quantidade de dados, sai da região de memória válida e dispara uma access violation, que reinicia o dispositivo (crash controlado, não RCE).

É uma das três falhas correlatas encontradas pela Tenable no mesmo subsistema durante pesquisa sobre CVE-2017-12240: CVE-2018-0172 (heap buffer overflow no memmove quando o option 82 do cliente está no fim de um bloco heap) e CVE-2018-0173 (memset com tamanho calculado incorretamente ao remover option 82 de uma DHCPOFFER). As três compartilham a mesma superfície — o parser de option 82 do relay agent — mas CVE-2018-0174 é puramente uma condição de DoS por corrupção de aritmética de ponteiro, não um overflow de heap explorável para execução de código.

O atacante controla o conteúdo e o tamanho do campo option 82 dentro do pacote DHCPv4 que envia ao dispositivo agindo como relay.

Como é explorada

O vetor é um pacote DHCPv4 forjado contendo um option 82 malformado, enviado ao dispositivo que atua como DHCP relay agent. Não há autenticação envolvida (PR:N, UI:N) e a complexidade de ataque é baixa (AC:L) — quem tem acesso de rede ao segmento onde o dispositivo escuta DHCP pode tentar.

O ponto crítico, que a manchete do CVSS 8.6 não deixa claro: a falha só é explorável se o dispositivo estiver configurado simultaneamente como (1) DHCP relay agent (ip helper-address configurado), (2) inserindo option 82 nos pacotes que retransmite (ip dhcp relay information option-insert) e (3) configurado para encapsular option 82 recebido de outros relay agents (ip dhcp relay information policy encapsulate). Essa combinação de três configurações não é padrão de fábrica — é típica de topologias com relay agents em cascata, comuns em redes de acesso de operadoras e em alguns ambientes industriais que usam switches Allen-Bradley/Rockwell baseados em IOS/IOS XE.

A CVE está no catálogo KEV da CISA, indicando exploração confirmada em ambiente real, embora as fontes disponíveis não detalhem campanha específica ou ator. O resultado de uma exploração bem-sucedida é reload do dispositivo — impacto de disponibilidade puro (C:N/I:N/A:H), sem indício de execução de código relatado para este CVE especificamente (diferente de CVE-2018-0172, que é overflow de heap).

Versões

Afetadas
Dispositivos Cisco IOS e IOS XE em versão vulnerável que estejam configurados simultaneamente como DHCP relay agent, com inserção de option 82 habilitada e com encapsulamento de option 82 habilitado. Advisories derivados (ICSA-18-107-04/05) confirmam impacto em Allen-Bradley/ArmorStratix Switches (Stratix 5400, 5410, 5700, 8000, ArmorStratix 5700 em versões 15.2(6)E0a e anteriores; Stratix 8300 em 15.2(4a)EA5 e anteriores) por rodarem versões vulneráveis de IOS/IOS XE. A lista completa e exata de releases IOS/IOS XE afetados por trem de versão não constava no material coletado — consultar a seção 'Fixed Software' do advisory oficial da Cisco ou o Cisco Software Checker.
Corrigidas em
Cisco declara ter lançado atualizações de software que corrigem a falha, sem workaround alternativo. O advisory oficial não teve sua tabela completa de versões corrigidas capturada nas fontes disponíveis para esta pesquisa — usar o Cisco Software Checker vinculado ao advisory cisco-sa-20180328-dhcpr3 para identificar a versão fixa correspondente ao trem de release e plataforma específicos.

Como se proteger

O advisory da Cisco (cisco-sa-20180328-dhcpr3) afirma explicitamente que não há workaround disponível — a única correção é atualizar o software para uma versão fixa do IOS ou IOS XE. As fontes coletadas não trazem a tabela completa de releases corrigidas por trem de versão; use o Cisco Software Checker ou a seção 'Fixed Software' do advisory oficial para identificar a versão exata para o seu hardware/trem de release antes de planejar a atualização — não generalize uma versão de outro produto Cisco para o seu.

Como controle compensatório real, já que não há flag de mitigação, é possível reduzir a superfície de exposição verificando se a configuração de risco está de fato presente: rode show running-config | include ip helper-address (ou show running-config | include cable helper-address em Cisco cBR-8) para detectar relay agent ativo, e show running-config | include ip dhcp relay information option e show running-config | include ip dhcp relay information policy.* encapsulate para verificar se option 82 insertion e encapsulation estão habilitados. Se nenhuma dessas configurações estiver presente, o dispositivo não está na condição vulnerável descrita pelo fornecedor, mesmo rodando uma versão de software listada como afetada.

Em ambientes onde não é possível atualizar (típico de infraestrutura industrial legada, como os switches Rockwell/Allen-Bradley citados nos advisories ICS-CERT), considerar isolar o tráfego DHCP em VLANs de gerência restritas e limitar quem pode enviar pacotes DHCPv4 ao segmento onde o relay está configurado, como redução de exposição — isso não corrige a falha, apenas reduz quem pode alcançá-la.

Como detectar

As fontes coletadas não indicam assinatura IDS/IPS oficial ou padrão de log confiável e documentado publicamente para detectar tentativas de exploração deste CVE especificamente. Como indício indireto, reloads inesperados e recorrentes em dispositivos configurados como DHCP relay agent com option 82 insertion/encapsulation habilitados, correlacionados no tempo com tráfego DHCPv4 anômalo (pacotes com option 82 de tamanho ou estrutura fora do padrão) proveniente de segmentos não confiáveis, é o sinal prático a investigar. Capturar e inspecionar pacotes DHCPv4 recebidos nas interfaces configuradas como relay é a única forma concreta de confirmar tentativa, na ausência de assinatura publicada.

Pesquisado e redigido com IA a partir do advisory do fornecedor e de análises públicas, com as fontes acima. Confira sempre a versão corrigida no advisory oficial antes de agir.
A vulnerability in the DHCP option 82 encapsulation functionality of Cisco IOS Software and Cisco IOS XE Software could allow an unauthenticated, remote attacker to cause an affected device to reload, resulting in a denial of service (DoS) condition. The vulnerability exists because the affected software performs incomplete input validation of option 82 information that it receives in DHCP Version 4 (DHCPv4) packets from DHCP relay agents. An attacker could exploit this vulnerability by sending a crafted DHCPv4 packet to an affected device. A successful exploit could allow the attacker to cause the affected device to reload, resulting in a DoS condition. Cisco Bug IDs: CSCuh91645.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:H