CVE-2026-75084
El controlador IEEE 802.15.4 sub-GHz CC1200 toma la longitud del paquete PHY del primer byte de la FIFO de RX de la radio en get_packet_length() y la valida en verify_rxfifo_validity() (drivers/ieee802154/ieee802154_cc1200.c). Esa validación solo imponía un límite inferior (pkt_len < 3); su segunda cláusula rechaza una FIFO que contiene más bytes de los declarados y, por tanto, nunca acota los valores grandes. Debido a que el controlador configura la radio para longitud de paquete variable con PKT_LEN = 0xFF, el byte de longitud es un valor transmitido por el aire de 0-255 que llegó sin acotar a net_pkt_rx_alloc_with_buffer() y a la posterior lectura en ráfaga por SPI.
Leer descripción completaMostrar menos
Un atacante no autenticado dentro del alcance de radio puede transmitir una trama que presenta un byte de longitud superior al máximo de 127 de IEEE 802.15.4 mientras la FIFO de RX de 128 bytes del chip no se ha desbordado, por lo que la comprobación previa RX_FIFO_ERROR del controlador no se activa. Alcanzar este estado depende del encuadre y la temporización de RF, ya que el hilo de RX se acciona a partir de la señal PKT_SYNC_RXTX y puede muestrear la FIFO antes de que un paquete esté completo; no se requiere emparejamiento, autenticación ni interacción del usuario.
Con CONFIG_NET_BUF_FIXED_DATA_SIZE por defecto y CONFIG_NET_BUF_DATA_SIZE=128, una asignación mayor que un fragmento se satisface mediante una cadena de fragmentos, pero read_rxfifo_content() realiza una única ráfaga SPI de pkt_len bytes en buf->data del primer fragmento y después llama a net_buf_add() con la misma longitud. Una longitud superior a 128 escribe, por tanto, hasta 127 bytes más allá del final de un fragmento en el pool contiguo rx_bufs y deja un net_buf cuyo len supera su capacidad. Los bytes que desbordan son salida de subdesbordamiento de la FIFO y no datos elegidos por el atacante, por lo que el impacto práctico es la corrupción y los bloqueos del pool de buffers de red, y no una escritura controlada. Solo se ven afectadas las compilaciones que habilitan CONFIG_IEEE802154_CC1200 con una radio CC1200 conectada.
Traducción automática del texto original de NVD (en inglés).
CVSS
- Puntuación base
- 6.8
- Versión
- 3.1
- Vector
- CVSS:3.1/AV:A/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:H
Probabilidad de explotación (EPSS)
- Probabilidad de explotación en los próximos 30 días
- 0.29 %
- Percentil entre todas las CVEs puntuadas
- 20
- Fecha de la puntuación
- 20/10/2026
EPSS (Exploit Prediction Scoring System, de FIRST) estima la probabilidad de que una vulnerabilidad sea explotada en 30 días. Complementa a CVSS (impacto) y a CISA KEV (explotación confirmada).
Técnicas ATT&CK
Cómo se explota esta vulnerabilidad y qué consigue el atacante, en el lenguaje de MITRE ATT&CK.
- Explotación
T1210Exploitation of Remote Serviceslateral movement90 % - Impacto principal
T1499.004Application or System Exploitationimpact80 %
Vector AV:A/PR:N/UI:N indica red adyacente (T1210); el texto solo describe corrupción del pool de net_buf y caídas, sin ejecución de comandos ni escritura controlada.
Inferido por nuestro agente de análisis a partir de la descripción oficial, el vector CVSS y la CWE, y comprobado por un supervisor. Puede contener errores.
Mitigaciones ATT&CK que cubren estas técnicas
Tecnologías afectadas (1)
⚠ Inferidas por IA a partir de la descripción — NVD aún no ha analizado esta CVE; no son CPE verificados.
CWE
- CWE-787
Referencias
JSON original (NVD)
Mostrar
{
"id": "CVE-2026-75084",
"cveTags": [],
"metrics": {
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"id": "CVE-2026-75084",
"role": "CISA Coordinator",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "partial"
}
],
"version": "2.0.3",
"timestamp": "2026-10-16T15:24:20.665016Z"
}
}
],
"cvssMetricV31": [
{
"type": "Secondary",
"source": "vulnerabilities@zephyrproject.org",
"cvssData": {
"scope": "UNCHANGED",
"version": "3.1",
"baseScore": 6.8,
"attackVector": "ADJACENT_NETWORK",
"baseSeverity": "MEDIUM",
"vectorString": "CVSS:3.1/AV:A/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:H",
"integrityImpact": "HIGH",
"userInteraction": "NONE",
"attackComplexity": "HIGH",
"availabilityImpact": "HIGH",
"privilegesRequired": "NONE",
"confidentialityImpact": "NONE"
},
"impactScore": 5.2,
"exploitabilityScore": 1.6
}
]
},
"affected": [
{
"source": "vulnerabilities@zephyrproject.org",
"affectedData": [
{
"vendor": "zephyrproject",
"product": "zephyr",
"versions": [
{
"status": "affected",
"version": "1.11.0",
"versionType": "semver",
"lessThanOrEqual": "4.4.2"
}
],
"packageName": "zephyr",
"programFiles": [
"drivers/ieee802154/ieee802154_cc1200.c"
],
"collectionURL": "https://github.com/zephyrproject-rtos/zephyr",
"defaultStatus": "unaffected",
"programRoutines": [
{
"name": "cc1200_rx"
},
{
"name": "read_rxfifo_content"
},
{
"name": "verify_rxfifo_validity"
}
]
}
]
}
],
"published": "2026-10-14T17:19:10.457",
"references": [
{
"url": "https://github.com/zephyrproject-rtos/zephyr/commit/26a8b8294bf28523c7aa2f15cf728517980ee593",
"source": "vulnerabilities@zephyrproject.org"
},
{
"url": "https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-pgg5-wwxw-vmj8",
"source": "vulnerabilities@zephyrproject.org"
}
],
"vulnStatus": "Awaiting Analysis",
"weaknesses": [
{
"type": "Secondary",
"source": "vulnerabilities@zephyrproject.org",
"description": [
{
"lang": "en",
"value": "CWE-787"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "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.\n\nAn 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.\n\nWith 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."
}
],
"lastModified": "2026-10-16T16:21:02.250",
"sourceIdentifier": "vulnerabilities@zephyrproject.org"
}