---
id: CVE-2026-75084
title: >-
  The CC1200 sub-GHz IEEE 802.15.4 driver takes the PHY packet length from the
  first byte of the radio's RX FIFO in get_packet_length() and validates it in
  verify_rxfifo_validity() (drivers/ieee802154/ieee802154_cc1200.c)
summary: >-
  The CC1200 sub-GHz IEEE 802.15.4 driver takes the PHY packet length from the
  first byte of the radio's RX FIFO in get_packet_length() and validates it in
  verify_rxfifo_validity() (drivers/ieee802154/ieee802154_cc1200.c). That
  validation …
severity: medium
cvss: 6.8
cvssVector: 'CVSS:3.1/AV:A/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:H'
cwe:
  - CWE-787
published: '2026-10-14'
updated: '2026-10-14'
sourceUpdated: '2026-10-14T17:19:10.457'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-75084'
references:
  - url: >-
      https://github.com/zephyrproject-rtos/zephyr/commit/26a8b8294bf28523c7aa2f15cf728517980ee593
    label: vulnerabilities@zephyrproject.org
  - url: >-
      https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-pgg5-wwxw-vmj8
    label: vulnerabilities@zephyrproject.org
tags:
  - nvd
ingestedAt: '2026-10-14T17:44:53.677Z'
---

## Overview

The CC1200 sub-GHz IEEE 802.15.4 driver takes the PHY packet length from the first byte of the radio's RX FIFO in get_packet_length() and validates it in verify_rxfifo_validity() (drivers/ieee802154/ieee802154_cc1200.c). That validation only enforced a lower bound (pkt_len < 3); its second clause rejects a FIFO that holds more bytes than declared and therefore never bounds large values. Because the driver configures the radio for variable packet length with PKT_LEN = 0xFF, the length byte is an over-the-air value of 0-255 that reached net_pkt_rx_alloc_with_buffer() and the subsequent SPI burst read unclamped.

An unauthenticated attacker within radio range can transmit a frame that presents a length byte above the IEEE 802.15.4 maximum of 127 while the chip's 128-byte RX FIFO has not overflowed, so the driver's RX_FIFO_ERROR pre-check does not fire. Reaching this state depends on RF framing and timing, since the RX thread is driven off the PKT_SYNC_RXTX signal and may sample the FIFO before a packet is complete; no pairing, authentication, or user interaction is required.

With the default CONFIG_NET_BUF_FIXED_DATA_SIZE and CONFIG_NET_BUF_DATA_SIZE=128, an allocation larger than one fragment is satisfied by a chain of fragments, but read_rxfifo_content() performs a single SPI burst of pkt_len bytes into the first fragment's buf->data and then calls net_buf_add() with the same length. A length above 128 therefore writes up to 127 bytes past the end of a fragment in the contiguous rx_bufs pool and leaves a net_buf whose len exceeds its capacity. The overflowing bytes are FIFO-underflow output rather than attacker-chosen data, so the practical impact is network-buffer-pool corruption and crashes rather than a controlled write. Only builds that enable CONFIG_IEEE802154_CC1200 with an attached CC1200 radio are affected.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
