CVE-2026-13481 in Zephyrinformação

Sumário

de VulDB • 26/08/2026

O analisador de mensagens de gerenciamento PTP do IEEE 1588 em subsys/net/lib/ptp/tlv.c trata incorretamente o ID de gerenciamento PTP_MGMT_TIME. Em tlv_mgmt_post_recv(), a estrutura switch para o caso PTP_MGMT_TIME faz um cast de mgmt_tlv->data para uma struct ptp_timestamp de 10 bytes e a lê (em seguida, inverte os bytes e grava-a novamente) sem verificar primeiro se o campo de dados TLV tem pelo menos sizeof(struct ptp_timestamp). Cada ID de gerenciamento irmão no mesmo switch valida seu comprimento antes; PTP_MGMT_TIME foi o único caso que não possuía essa verificação.

O comprimento passado é o tamanho dos dados de gerenciamento (tlv->length - 2), e a proteção upstream em ptp_tlv_post_recv() exige apenas tlv->length > 2, enquanto msg_tlv_post_recv() valida apenas se o TLV cabe na contagem total de bytes recebidos, não um mínimo por ID. Um par no segmento PTP local pode, portanto, enviar uma mensagem PTP_MSG_MANAGEMENT carregando um TLV PTP_MGMT_TIME curto (com dados tão pequenos quanto 2 bytes), fazendo com que o analisador leia e grave 8 bytes além dos dados validados. O tipo de mensagem e os conteúdos do TLV são obtidos diretamente da rede, portanto, a vulnerabilidade é acessível por qualquer atacante adjacente quando CONFIG_PTP está habilitado.

A leitura fora dos limites (over-read) e a gravação posterior permanecem dentro da alocação da struct ptp_msg (mgmt_tlv->data reside no membro de união mtu[NET_ETH_MTU] inicial, portanto data + 10 termina no máximo alguns bytes após mtu[], dentro do mesmo objeto), o que caracteriza uma leitura fora dos limites em memória adjacente ao interior do objeto e uma corrupção limitada in loco da timestamp analisada da mensagem, não sendo uma corrupção de memória além da alocação. O impacto é limitado à exposição menor de bytes adjacentes e à corrupção do valor TIME de gerenciamento analisado pelo dispositivo; não há falha (crash) no acesso nem corrupção alcançável na contagem de referências.

A correção adiciona if (length < sizeof(struct ptp_timestamp)) { return -EBADMSG; } antes do cast, correspondendo aos outros casos de ID de gerenciamento e fechando completamente a vulnerabilidade no caminho de recebimento.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Responsável

Zephyr

Reservar

27/06/2026

Divulgação

26/08/2026

Moderação

aceite

Entrada

VDB-395791

CPE

pronto

EPSS

0.00000

KEV

não

Atividades

muito baixo

Fontes

Might our Artificial Intelligence support you?

Check our Alexa App!