CVE-2026-19739

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

El código de procedimiento de control de la capa de enlace Bluetooth en subsys/bluetooth/controller/ll_sw/ull_llcp_conn_upd.c retiene el nodo RX recibido mientras un procedimiento de Actualización de Conexión / Parámetros de Conexión espera su instant, de modo que el nodo pueda llevar posteriormente la notificación del host (llcp_rx_node_retain(), que lo marca como NODE_RX_TYPE_RETAIN y suprime así el reciclaje normal en ull.c). La rama default: de llcp_rp_cu_rx() y llcp_lp_cu_rx() — la ruta "PDU inválido, terminar la conexión" — completó el procedimiento sin liberar ese nodo retenido. llcp_rr_check_done() entonces desencoló y liberó el contexto del procedimiento con ctx->node_ref.rx aún apuntando al nodo retenido, perdiendo la última referencia a él.

Leer descripción completaMostrar menos

Un dispositivo par en rango de radio puede alcanzar esto sin emparejar, enlazar ni cifrar. Contra un periférico, el par envía un LL_CONNECTION_UPDATE_IND bien formado con un instant unos pocos eventos de conexión en el futuro (el nodo se retiene y el procedimiento entra en RP_CU_STATE_WAIT_INSTANT), luego, antes de que se alcance el instant, envía cualquier otro PDU de control LL tal como LL_LENGTH_REQ. ull_cp_rx() encamina ese PDU hacia el procedimiento activo de Actualización de Conexión remota, que toma la ruta de PDU inválido. El rol central es alcanzable simétricamente después de aceptar un LL_CONNECTION_PARAM_REQ, y la variante de procedimiento local es alcanzable con LL_REJECT_IND.

Con CONFIG_BT_CTLR_ASSERT_DEBUG habilitado (su valor predeterminado), el estado resultante viola el invariante afirmado en llcp_rr_check_done(), por lo que la secuencia de dos PDU produce un error fatal inmediato en el controlador. Con esas aserciones deshabilitadas, cada ocurrencia pierde permanentemente un nodo del pequeño grupo RX fijo del controlador (dimensionado desde CONFIG_BT_CTLR_RX_BUFFERS, que por defecto es 1); repetir la secuencia a través de reconexiones agota el grupo, después de lo cual la ruta de recepción de la capa de enlace opera en un nodo NULL. El impacto es una denegación de servicio no autenticada y activable remotamente que persiste hasta el reinicio; no hay consecuencias de divulgación de memoria o corrupción de memoria, ya que el nodo filtrado simplemente se vuelve inalcanzable.

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

CVSS

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

Probabilidad de explotación (EPSS)

Probabilidad de explotación en los próximos 30 días
0.10 %
Percentil entre todas las CVEs puntuadas
1
Fecha de la puntuación
21/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.

Red adyacente (AV:A) sin privilegios; atacante no autenticado envía secuencia de PDUs Bluetooth malformadas causando agotamiento de buffers RX y DoS del controlador Bluetooth hasta reinicio.

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-19739",
  "cveTags": [],
  "metrics": {
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "id": "CVE-2026-19739",
          "role": "CISA Coordinator",
          "options": [
            {
              "exploitation": "none"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "version": "2.0.3",
          "timestamp": "2026-10-16T15:50:37.226993Z"
        }
      }
    ],
    "cvssMetricV31": [
      {
        "type": "Secondary",
        "source": "vulnerabilities@zephyrproject.org",
        "cvssData": {
          "scope": "UNCHANGED",
          "version": "3.1",
          "baseScore": 6.5,
          "attackVector": "ADJACENT_NETWORK",
          "baseSeverity": "MEDIUM",
          "vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
          "integrityImpact": "NONE",
          "userInteraction": "NONE",
          "attackComplexity": "LOW",
          "availabilityImpact": "HIGH",
          "privilegesRequired": "NONE",
          "confidentialityImpact": "NONE"
        },
        "impactScore": 3.6,
        "exploitabilityScore": 2.8
      }
    ]
  },
  "affected": [
    {
      "source": "vulnerabilities@zephyrproject.org",
      "affectedData": [
        {
          "vendor": "zephyrproject",
          "product": "zephyr",
          "versions": [
            {
              "status": "affected",
              "version": "3.4.0",
              "lessThan": "4.5.0",
              "versionType": "semver"
            }
          ],
          "packageName": "zephyr",
          "programFiles": [
            "subsys/bluetooth/controller/ll_sw/ull_llcp_conn_upd.c"
          ],
          "collectionURL": "https://github.com/zephyrproject-rtos/zephyr",
          "defaultStatus": "unaffected",
          "programRoutines": [
            {
              "name": "llcp_lp_cu_rx"
            },
            {
              "name": "llcp_rp_cu_rx"
            }
          ]
        }
      ]
    }
  ],
  "published": "2026-10-11T18:16:59.170",
  "references": [
    {
      "url": "https://github.com/zephyrproject-rtos/zephyr/commit/7b600129faaba8bb26dd5cb3e8f17ed1cb41ea7f",
      "source": "vulnerabilities@zephyrproject.org"
    },
    {
      "url": "https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-84v8-vgp5-4vc9",
      "source": "vulnerabilities@zephyrproject.org"
    }
  ],
  "vulnStatus": "Awaiting Analysis",
  "weaknesses": [
    {
      "type": "Secondary",
      "source": "vulnerabilities@zephyrproject.org",
      "description": [
        {
          "lang": "en",
          "value": "CWE-401"
        },
        {
          "lang": "en",
          "value": "CWE-459"
        },
        {
          "lang": "en",
          "value": "CWE-617"
        },
        {
          "lang": "en",
          "value": "CWE-772"
        }
      ]
    }
  ],
  "descriptions": [
    {
      "lang": "en",
      "value": "The Bluetooth Link Layer control procedure code in subsys/bluetooth/controller/ll_sw/ull_llcp_conn_upd.c retains the received RX node while a Connection Update / Connection Parameter procedure waits for its instant, so the node can later carry the host notification (llcp_rx_node_retain(), which marks it NODE_RX_TYPE_RETAIN and thereby suppresses the normal recycling in ull.c). The default: arm of llcp_rp_cu_rx() and llcp_lp_cu_rx() — the \"invalid PDU, terminate the connection\" path — completed the procedure without releasing that retained node. llcp_rr_check_done() then dequeued and freed the procedure context with ctx->node_ref.rx still pointing at the retained node, dropping the last reference to it.\n\nA peer device in radio range can reach this without pairing, bonding, or encryption. Against a peripheral, the peer sends a well-formed LL_CONNECTION_UPDATE_IND with an instant a few connection events in the future (the node is retained and the procedure enters RP_CU_STATE_WAIT_INSTANT), then, before the instant is reached, sends any other LL Control PDU such as LL_LENGTH_REQ. ull_cp_rx() routes that PDU into the active remote Connection Update procedure, which takes the invalid-PDU path. The central role is reachable symmetrically after accepting an LL_CONNECTION_PARAM_REQ, and the local-procedure variant is reachable with LL_REJECT_IND.\n\nWith CONFIG_BT_CTLR_ASSERT_DEBUG enabled (its default), the resulting state violates the invariant asserted in llcp_rr_check_done(), so the two-PDU sequence produces an immediate fatal error in the controller. With those asserts disabled, each occurrence permanently loses one node from the controller's small fixed RX pool (sized from CONFIG_BT_CTLR_RX_BUFFERS, which defaults to 1); repeating the sequence across reconnections exhausts the pool, after which the link-layer receive path operates on a NULL node. The impact is an unauthenticated, remotely triggerable denial of service persisting until reboot; there is no memory-disclosure or memory-corruption consequence, since the leaked node simply becomes unreachable."
    }
  ],
  "lastModified": "2026-10-16T16:17:05.573",
  "sourceIdentifier": "vulnerabilities@zephyrproject.org"
}