CVE-2026-75083

Estado: Pendiente de análisisMedia (5.9)—
Gravedad5.9Media · CVSS 3.1
Probabilidad de explotación0.23 %mayor que el 13 % de las CVE
Explotación activaNono figura en el catálogo de CISA
Exploit públicoNo conocidosin código público localizado

La ruta de recepción del controlador IEEE 802.15.4 de NXP KW41Z, kw41z_rx() en drivers/ieee802154/ieee802154_kw41z.c, calculaba el tamaño de la carga útil como pkt_len = len - KW41Z_FCS_LENGTH en un uint8_t, donde len es la longitud de la trama notificada por la radio. El manejador de interrupciones kw41z_isr() obtenía esa longitud del campo RX_FRAME_LENGTH del registro ZLL IRQSTS (una copia del byte de longitud de la cabecera PHY de la trama recibida por el aire) y solo rechazaba el valor cero. Por tanto, una longitud notificada de uno provocaba un desbordamiento por defecto (underflow) y pkt_len == 255.

Leer descripción completaMostrar menos

Dado que el paquete se asigna con NET_AF_UNSPEC en una capa L2 que no es Ethernet, net_pkt_rx_alloc_with_buffer() no limita la solicitud al MTU de la interfaz; con el pool de búferes de tamaño fijo por defecto (CONFIG_NET_BUF_FIXED_DATA_SIZE, CONFIG_NET_BUF_DATA_SIZE=128), la asignación tuvo éxito como una cadena de dos fragmentos. Los bucles posteriores de copia del registro al búfer escriben únicamente en el primer fragmento, por lo que se escribieron 255 bytes en un bloque de datos de net_buf de 128 bytes, desbordándolo hasta en 127 bytes sobre la memoria adyacente del pool de búferes de red, y leyendo hasta 128 bytes más allá del final del array de registros PKT_BUFFER_RX de la radio.

El campo de longitud procede de una trama no autenticada transmitida por cualquier dispositivo dentro del alcance de radio 802.15.4, y el hardware lo captura en el momento de la cabecera PHY, antes de que finalice el filtrado de tramas, mientras que el manejador lo muestrea después de limpiar el estado de la interrupción; por ello, un atacante que inunde con tramas con un byte de longitud igual a uno puede provocar el desbordamiento. El impacto es una corrupción de memoria en el pool de búferes de recepción compartido desde el contexto de interrupción, lo más probable un fallo o la corrupción de los datos de otros paquetes; los bytes sobrescritos son contenido de registros de la radio y no datos creados por el atacante, lo que limita el impacto en la integridad.

La corrección rechaza cualquier longitud inferior a KW41Z_FCS_LENGTH y, además, verifica net_buf_tailroom() del primer fragmento antes de los bucles de copia, lo que también cubre la variante CONFIG_NET_L2_OPENTHREAD del cálculo del tamaño.

Traducción automática del texto original de NVD (en inglés).

CVSS

Puntuación base
5.9
Versión
3.1
Vector
CVSS:3.1/AV:A/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:H

Probabilidad de explotación (EPSS)

Probabilidad de explotación en los próximos 30 días
0.23 %
Percentil entre todas las CVEs puntuadas
13
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.

Vector AV:A/PR:N/UI:N (red adyacente, sin interacción) da T1210; el texto indica un posible fallo o corrupción de memoria en el buffer compartido, 'most plausibly a crash', sin ejecución de código.

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

Referencias

Mostrar las 2 referencias

JSON original (NVD)

Mostrar
{
  "id": "CVE-2026-75083",
  "cveTags": [],
  "metrics": {
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "id": "CVE-2026-75083",
          "role": "CISA Coordinator",
          "options": [
            {
              "exploitation": "none"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "version": "2.0.3",
          "timestamp": "2026-10-16T15:25:03.202886Z"
        }
      }
    ],
    "cvssMetricV31": [
      {
        "type": "Secondary",
        "source": "vulnerabilities@zephyrproject.org",
        "cvssData": {
          "scope": "UNCHANGED",
          "version": "3.1",
          "baseScore": 5.9,
          "attackVector": "ADJACENT_NETWORK",
          "baseSeverity": "MEDIUM",
          "vectorString": "CVSS:3.1/AV:A/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:H",
          "integrityImpact": "LOW",
          "userInteraction": "NONE",
          "attackComplexity": "HIGH",
          "availabilityImpact": "HIGH",
          "privilegesRequired": "NONE",
          "confidentialityImpact": "NONE"
        },
        "impactScore": 4.2,
        "exploitabilityScore": 1.6
      }
    ]
  },
  "affected": [
    {
      "source": "vulnerabilities@zephyrproject.org",
      "affectedData": [
        {
          "vendor": "zephyrproject",
          "product": "zephyr",
          "versions": [
            {
              "status": "affected",
              "version": "1.8.0",
              "lessThan": "4.5.0",
              "versionType": "semver"
            }
          ],
          "packageName": "zephyr",
          "programFiles": [
            "drivers/ieee802154/ieee802154_kw41z.c"
          ],
          "collectionURL": "https://github.com/zephyrproject-rtos/zephyr",
          "defaultStatus": "unaffected",
          "programRoutines": [
            {
              "name": "kw41z_isr"
            },
            {
              "name": "kw41z_rx"
            }
          ]
        }
      ]
    }
  ],
  "published": "2026-10-14T17:19:10.307",
  "references": [
    {
      "url": "https://github.com/zephyrproject-rtos/zephyr/commit/51d71864578c08eb1a1201f87b46ec81c8609d62",
      "source": "vulnerabilities@zephyrproject.org"
    },
    {
      "url": "https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-2pwx-gg6f-535f",
      "source": "vulnerabilities@zephyrproject.org"
    }
  ],
  "vulnStatus": "Awaiting Analysis",
  "weaknesses": [
    {
      "type": "Secondary",
      "source": "vulnerabilities@zephyrproject.org",
      "description": [
        {
          "lang": "en",
          "value": "CWE-191"
        }
      ]
    }
  ],
  "descriptions": [
    {
      "lang": "en",
      "value": "The receive path of the NXP KW41Z IEEE 802.15.4 driver, kw41z_rx() in drivers/ieee802154/ieee802154_kw41z.c, computed the payload size as pkt_len = len - KW41Z_FCS_LENGTH in a uint8_t, where len is the frame length reported by the radio. The interrupt handler kw41z_isr() obtained that length from the RX_FRAME_LENGTH field of the ZLL IRQSTS register — a copy of the PHY header length byte of the frame received over the air — and only rejected the value zero. A reported length of one therefore underflowed to pkt_len == 255.\n\nBecause the packet is allocated with NET_AF_UNSPEC on a non-Ethernet L2, net_pkt_rx_alloc_with_buffer() does not clamp the request to the interface MTU; with the default fixed-size buffer pool (CONFIG_NET_BUF_FIXED_DATA_SIZE, CONFIG_NET_BUF_DATA_SIZE=128) the allocation succeeded as a chain of two fragments. The subsequent register-to-buffer copy loops write into the first fragment only, so 255 bytes were written into a 128-byte net_buf data block, overrunning it by up to 127 bytes into adjacent network-buffer-pool memory, and reading up to 128 bytes past the end of the radio's PKT_BUFFER_RX register array.\n\nThe length field originates from an unauthenticated frame transmitted by any device within 802.15.4 radio range, and is captured by the hardware at PHY-header time — before frame filtering has completed — while the handler samples it after clearing the interrupt status, so an attacker flooding frames with a length byte of one can drive the underflow. The impact is memory corruption in the shared receive buffer pool from interrupt context, most plausibly a crash or corruption of other packets' data; the overflowing bytes are radio register contents rather than attacker-authored data, which bounds the integrity impact.\n\nThe fix rejects any length below KW41Z_FCS_LENGTH and additionally verifies net_buf_tailroom() of the first fragment before the copy loops, which also covers the CONFIG_NET_L2_OPENTHREAD variant of the size computation."
    }
  ],
  "lastModified": "2026-10-16T16:21:02.140",
  "sourceIdentifier": "vulnerabilities@zephyrproject.org"
}