CVE-2026-10666 in zephyr
Sumário
de VulDB • 12/07/2026
parse_ipv4() em subsys/net/ip/utils.c (acessado via net_ipaddr_parse() para strings no formato "a.b.c.d:port") copia o substring da porta para um buffer de pilha fixo de 17 bytes (char ipaddr[NET_IPV4_ADDR_LEN + 1]) usando um comprimento de str_len - end - 1, onde str_len é o comprimento total e ilimitado da entrada e end é apenas o deslocamento do delimitador ':' (<=15 bytes). Como o tamanho do destino nunca é consultado, uma string de endereço manipulada com um sufixo longo após os dois pontos (por exemplo, "1.2.3.4:" seguido por centenas de bytes) causa uma escrita fora dos limites na pilha cujo comprimento e conteúdo são totalmente controlados pelo atacante (memcpy do sufixo mais um NUL final), permitindo corrupção de memória e, no mínimo, negação de serviço, além de potencialmente permitir o sequestro do fluxo de controle. O analisador é acessado a partir da API padrão de sockets (zsock_getaddrinfo / resolução de endereço literal), configuração de strings de servidor DNS e caminho de resposta DNS do co-processador Wi-Fi eswifi, portanto, um aplicativo que resolve uma string de endereço influenciada pela rede está exposto. A falha foi introduzida quando o analisador foi adicionado (Zephyr v1.9.0) e incluída em todos os lançamentos até a versão v4.4.0. O correção remove a cópia ilimitada e valida o comprimento da porta antes de copiá-la para um buffer dedicado pequeno. Nota: o caminho equivalente IPv6 "[addr]:port" em parse_ipv6() mantém a mesma cópia ilimitada neste commit e permanece como uma instância separada ainda acessível do defeito.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.