CVE-2026-98689

Estado: RecibidaSin puntuar—
Gravedad—Sin puntuar
Probabilidad de explotación0.17 %mayor que el 5 % de las CVE
Explotación activaNono figura en el catálogo de CISA
Exploit públicoNo conocidosin código público localizado

En el kernel de Linux se ha resuelto la siguiente vulnerabilidad:

thunderbolt: Don't access a DP tunnel after its DPRX read was canceled

tb_dp_dprx_work() comprueba ->dprx_canceled antes de tomar tb->lock, por lo que no detecta una llamada a tb_dp_dprx_stop() que no pudo cancelar el trabajo que ya se estaba ejecutando. Entonces sondea las capacidades DPRX y ejecuta la función de retorno (callback) para un túnel que ya había sido desmantelado mientras el dominio se estaba suspendiendo o desconectando.

Se puede provocar cancelando la lectura DPRX desde fuera del tb->wq ordenado: durante la suspensión, tb_disconnect_and_release_dp() hace exactamente esto, y con un parche posterior tb_stop() también lo hará.

Leer descripción completaMostrar menos

Esto último, combinado con el Apple NHI donde la lectura DPRX nunca llegó a completarse, es como di con este fallo.

Comprobar el indicador con tb->lock retenido y volver a comprobarlo en tb_dp_tunnel_active(), porque la función de retorno se ejecuta después de que el lock se haya liberado de nuevo.

Además, limpiar el indicador en tb_dp_dprx_start() para que solo describa el trabajo que está en curso en cada momento.

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

CVSS

NVD no ha asignado puntuación CVSS a esta CVE (habitual desde el cambio de política de abril de 2026).

Probabilidad de explotación (EPSS)

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

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.

Referencias

Mostrar las 3 referencias

JSON original (NVD)

Mostrar
{
  "id": "CVE-2026-98689",
  "cveTags": [],
  "metrics": {},
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "product": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "d6d458d42e1e1544a18f37f1d5c840e00d5261b9",
              "lessThan": "405a969c0b3356639116db89ab367be1d64b77c0",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "d6d458d42e1e1544a18f37f1d5c840e00d5261b9",
              "lessThan": "2c2fd6a7fd5e1218db7e17336fc1a0393b6949e6",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "d6d458d42e1e1544a18f37f1d5c840e00d5261b9",
              "lessThan": "419fa32fa5bc2d7fb9d0d15d5630b1c1090808b3",
              "versionType": "git"
            }
          ],
          "programFiles": [
            "drivers/thunderbolt/tb.c",
            "drivers/thunderbolt/tunnel.c"
          ],
          "defaultStatus": "unaffected"
        },
        {
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "product": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.14"
            },
            {
              "status": "unaffected",
              "version": "0",
              "lessThan": "6.14",
              "versionType": "semver"
            },
            {
              "status": "unaffected",
              "version": "6.18.56",
              "versionType": "semver",
              "lessThanOrEqual": "6.18.*"
            },
            {
              "status": "unaffected",
              "version": "7.2.10",
              "versionType": "semver",
              "lessThanOrEqual": "7.2.*"
            },
            {
              "status": "unaffected",
              "version": "7.3",
              "versionType": "original_commit_for_fix",
              "lessThanOrEqual": "*"
            }
          ],
          "programFiles": [
            "drivers/thunderbolt/tb.c",
            "drivers/thunderbolt/tunnel.c"
          ],
          "defaultStatus": "affected"
        }
      ]
    }
  ],
  "published": "2026-10-18T16:17:22.317",
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/2c2fd6a7fd5e1218db7e17336fc1a0393b6949e6",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/405a969c0b3356639116db89ab367be1d64b77c0",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/419fa32fa5bc2d7fb9d0d15d5630b1c1090808b3",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ],
  "vulnStatus": "Received",
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nthunderbolt: Don't access a DP tunnel after its DPRX read was canceled\n\ntb_dp_dprx_work() checks ->dprx_canceled before it takes tb->lock so it\nmisses a tb_dp_dprx_stop() that could not cancel the already running\nwork. It then polls the DPRX capabilities and runs the callback for a\ntunnel that has already been torn down while the domain is suspending or\ngoing away.\n\nThis can be hit by cancelling the DPRX read from outside the ordered\ntb->wq: During suspend tb_disconnect_and_release_dp() does just this and\nwith a later patch tb_stop() will do it as well. The latter in combination\nwith the Apple NHI where the DPRX read never completed is how I hit\nthis.\n\nCheck the flag with tb->lock held instead and check it again in\ntb_dp_tunnel_active() because the callback runs after the lock has been\ndropped again.\n\nAlso clear the flag in tb_dp_dprx_start() so that it only ever describes\nthe work that is currently in flight."
    }
  ],
  "lastModified": "2026-10-19T10:19:33.283",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}