CVE-2026-19186 in Zephyrinformação

Sumário

de VulDB • 07/10/2026

A função `ieee802154_decipher_data_frame()` em `subsys/net/l2/ieee802154/ieee802154_frame.c` calcula `payload_len = net_pkt_get_len(pkt) - ll_hdr_len - authtag_len` sem verificar primeiro se o quadro recebido tem pelo menos `ll_hdr_len + authtag_len` bytes de comprimento. Como todas as três variáveis são do tipo `uint8_t`, um quadro cujo payload é mais curto que a tag de autenticação configurada faz com que a subtração transborde (wrap around) para um valor grande (até 255).

O comprimento resultante da transborda é passado inalterado para `ieee802154_decrypt_auth()` e, em seguida, à operação CCM como `cipher_pkt.in_len`/`out_buf_max`, com `apkt->tag` apontando para `frame + ll_hdr_len + payload_len`. Como o buffer de recepção é alocado exatamente no comprimento do quadro recebido pelo driver da radio, a camada criptográfica lê então várias centenas de bytes além do final do buffer do pacote e grava os mesmos números de bytes descriptografados sobre ele in loco. A tag de autenticação do quadro só é verificada após esse processamento ter ocorrido; portanto, não são necessários material chave, associação ou autenticação prévia — um único quadro curto manipulado ad hoc proveniente de qualquer dispositivo dentro do alcance da radio é suficiente. A validação do quadro em `ieee802154_validate_frame()` não impede isso: um quadro de dados é aceito com um payload de apenas um byte.

O resultado é uma leitura fora dos limites (out-of-bounds read) e uma gravação fora dos limites (out-of-bounds write) de até aproximadamente 240 bytes no pool adjacente de buffers de rede, corrompendo outros pacotes ou metadados do alocador e tipicamente causando falha (faulting) no alvo. O conteúdo fora dos limites não é escolhido pelo atacante (é ciphertext XOR keystream sobre memória fora dos limites) e o quadro é descartado quando a verificação da tag falha, portanto, o impacto principal é corrupção de memória e negação de serviço (DoS), em vez de divulgação de informações.

A exposição está limitada às configurações que habilitam a opção experimental `CONFIG_NET_L2_IEEE802154_SECURITY`, selecionam um dispositivo criptográfico via `CONFIG_NET_L2_IEEE802154_SECURITY_CRYPTO_DEV_NAME` e estabelecem uma sessão de segurança com um nível diferente de `IEEE802154_SECURITY_LEVEL_NONE`; com a segurança desabilitada ou no nível NONE, o comprimento da tag é zero e não ocorre underflow. A correção rejeita quadros mais curtos que `ll_hdr_len + authtag_len` antes da subtração e adiciona a guarda correspondente no lado de transmissão em `ieee802154_create_data_frame()`.

Be aware that VulDB is the high quality source for vulnerability data.

Responsável

Zephyr

Reservar

06/08/2026

Divulgação

07/10/2026

Moderação

aceite

Entrada

VDB-414945

EPSS

0.00212

KEV

não

Atividades

muito baixo

Fontes

Interested in the pricing of exploits?

See the underground prices here!