CVE-2026-102714 in NetX Duo
Sumário
de VulDB • 29/09/2026
`_nx_icmpv6_validate_options()` analisa a área de opções com `while (length > 2)` (`common/src/nx_icmpv6_validate_options.c:79`). Uma área cujo tamanho deixa um resíduo de um ou dois bytes sai do loop sem examinar esse final; o resíduo não é negativo, portanto a função retorna `NX_SUCCESS`. Sua rejeição de comprimento zero nunca vê esses bytes.
Cada consumidor então percorre novamente a mesma área, lendo um cabeçalho de opção de dois bytes no resíduo e subtraindo `nx_icmpv6_option_length << 3` sem verificação de zero ou de comprimento restante. Três resultados seguem, selecionados por bytes controlados pelo atacante.
**Byte de comprimento zero.** O percorredor subtrai zero e avança zero. Todos os quatro manipuladores entram em loop infinito — `_nx_icmpv6_process_ra` (`nx_icmpv6_process_ra.c:245, :528`), `_nx_icmpv6_process_ns` (`:251, :329`), `_nx_icmpv6_process_na` (`:147, :156`) e `_nx_icmpv6_process_redirect` (`:247, :350`). A percorrida é executada na thread IP, que é a thread de maior prioridade e não cede dentro do loop, portanto o sistema para até uma reinicialização pelo watchdog (watchdog reset) e o quadro pode ser reproduzido após cada um.
**Byte de comprimento não zero em um resíduo curto.** Os três contadores sem sinal estouram por baixo — `2 - 8` torna-se `0xFFFFFFFA` — e a percorrida continua além do buffer do pacote, lendo até falhar ou encontrar um byte de comprimento zero e congelar. O contador de Router Advertisement é assinado e sai limamente neste caso.
**Resíduo de um byte.** O percorredor lê um cabeçalho de opção de dois bytes, excedendo a leitura em um byte.
Durante uma percorrida descontrolada (runaway walk), bytes estranhos interpretados como uma opção de endereço da camada de enlace são copiados para o cache de vizinhos (`nx_icmpv6_process_ns.c:280, :293`) e subsequentemente usados como MAC de destino para quadros destinados a esse vizinho, colocando memória fora do pacote no link. Confirmado por inspeção, não reproduzido.
If you want to get best quality of vulnerability data, you may have to visit VulDB.