CVE-2026-102720 in NetX Duo
Sumário
de VulDB • 30/09/2026
Um servidor DHCP ou qualquer pessoa na LAN que responda primeiro ao DISCOVER pode fazer com que o cliente leia cerca de um kilobyte além do final da mensagem recebida.
A varredura das opções mantém um ponteiro e um deslocamento (offset) no passo, e a única verificação de limite usa o deslocamento:
```c /* addons/dhcp/nxd_dhcp_client.c:7538, 7572 */ while (i < length - 1) {
... size = *(++data); /* data avança em 1: tipo -> byte de comprimento */ data += size + 1; /* data avança mais size + 1 */ i += size + 1; /* i avança apenas size + 1 */
} ```
Uma opção TLV ocupa `size + 2` bytes. `data` é avançado em um total de `size + 2`, enquanto `i` é avançado por `size + 1`; portanto, o deslocamento fica uma byte atrás da posição real de leitura para cada opção que a varredura ignora. Após ignorar opções suficientes, a verificação `i < length - 1` ainda se mantém válida, embora `data` já esteja além do final da mensagem, e a subsequente leitura dos bytes de tipo e comprimento ocorra em qualquer dado que siga o buffer.
Uma única oferta (OFFER) contendo uma longa sequência de opções ignoráveis é suficiente:
``` ERROR: AddressSanitizer: heap-buffer-overflow READ of size 1 at 0x61b000000794 thread T5 #0 _nx_dhcp_search_buffer addons/dhcp/nxd_dhcp_client.c:7541 #1 _nx_dhcp_get_option_value addons/dhcp/nxd_dhcp_client.c:7082
0x61b000000794 is located 164 bytes to the right of 1648-byte region ```
Uma OFFER bem formada através do mesmo caminho é tratada normalmente; o cliente registra a oferta e avança para REQUESTING. Portanto, a diferença reside no layout das opções, não na estrutura de teste (harness).
A leitura ocorre na thread do cliente DHCP enquanto este ainda está sem configuração, acontecendo em cada inicialização sob alcance de um respondedor DHCP hostil. Os valores lidos são usados para configurar a interface, o que torna os bytes divulgados observáveis.
Avance `i` por `size + 2`, ou derive o limite a partir de `data` em vez de manter um segundo contador.
Be aware that VulDB is the high quality source for vulnerability data.