CVE-2026-98706

Estado: RecibidaSin puntuar—
Gravedad—Sin puntuar
Probabilidad de explotación0.17 %mayor que el 6 % 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:

wifi: mac80211: drenar el trabajo de entrega de PS durante el desmantelamiento de la estación

La eliminación de una estación AP o mesh puede notificar al controlador e activar TXQs después de que la estación ya haya sido eliminada del controlador, y puede actualizar num_sta_ps y las colas de ahorro de energía después de que la limpieza de la estación las haya purgado.

sta_deliver_ps_frames() prueba sta->dead solo antes de iniciar la entrega. Un worker que pasa esa prueba puede retrasarse mientras el desmantelamiento establece sta->dead y elimina la estación del controlador; cuando reanuda su ejecución, aún ejecuta la entrega completa.

Leer descripción completaMostrar menos

El cancel_work_sync() existente se encuentra cerca del final de __cleanup_single_sta(), después de la transición de estado final del controlador y después de la contabilidad de PS y la purga de colas, por lo que drena el worker solo una vez que el estado que tiene que proteger ya ha cambiado. Antes del commit d34ba2168a3c ("mac80211: don't delay station destruction") la limpieza se difería a través de la misma cola de trabajo ordenada que el trabajo de entrega, lo que mantenía los dos ordenados.

Cancela el trabajo después de establecer sta->dead y antes de mover el estado del controlador, y traslada la cancelación existente al inicio de __cleanup_single_sta(). El primer drenaje cierra la ventana de vida útil del controlador; las devoluciones de llamada del controlador durante las transiciones de estado restantes aún pueden encolar drv_deliver_wk a través de ieee80211_sta_block_awake(), por lo que mantén el segundo drenaje al inicio de __cleanup_single_sta(). Ese drenaje también cubre los fallos de inserción, que llegan a limpieza sin establecer sta->dead.

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
6
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 4 referencias

JSON original (NVD)

Mostrar
{
  "id": "CVE-2026-98706",
  "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": "d34ba2168a3c10e7301cca06069c39865b4c3ec6",
              "lessThan": "843d3a1e6f25027ac85f88f67b95d82c67306dee",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "d34ba2168a3c10e7301cca06069c39865b4c3ec6",
              "lessThan": "772bd89304ecf057cc51ce4ce24a1a96ac9c8de3",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "d34ba2168a3c10e7301cca06069c39865b4c3ec6",
              "lessThan": "097460fcdd8ab9ef6f6018b2fdc29ba0ea499298",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "d34ba2168a3c10e7301cca06069c39865b4c3ec6",
              "lessThan": "67a9e80c3ca20c9044cd6ee72cd6278dd19b5023",
              "versionType": "git"
            }
          ],
          "programFiles": [
            "net/mac80211/sta_info.c"
          ],
          "defaultStatus": "unaffected"
        },
        {
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "product": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "3.14"
            },
            {
              "status": "unaffected",
              "version": "0",
              "lessThan": "3.14",
              "versionType": "semver"
            },
            {
              "status": "unaffected",
              "version": "6.12.113",
              "versionType": "semver",
              "lessThanOrEqual": "6.12.*"
            },
            {
              "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": [
            "net/mac80211/sta_info.c"
          ],
          "defaultStatus": "affected"
        }
      ]
    }
  ],
  "published": "2026-10-18T16:17:24.117",
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/097460fcdd8ab9ef6f6018b2fdc29ba0ea499298",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/67a9e80c3ca20c9044cd6ee72cd6278dd19b5023",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/772bd89304ecf057cc51ce4ce24a1a96ac9c8de3",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/843d3a1e6f25027ac85f88f67b95d82c67306dee",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ],
  "vulnStatus": "Received",
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: mac80211: drain PS delivery work during station teardown\n\nRemoving an AP or mesh station can notify the driver and wake TXQs after\nthe station has already been removed from the driver, and can update\nnum_sta_ps and the power-save queues after station cleanup has purged\nthem.\n\nsta_deliver_ps_frames() tests sta->dead only before it starts delivery. A\nworker that passes that test can be delayed while teardown sets sta->dead\nand removes the station from the driver; when it resumes it still runs the\nfull delivery.\n\nThe existing cancel_work_sync() sits near the end of\n__cleanup_single_sta(), after the final driver state transition and after\nPS accounting and queue purging, so it drains the worker only once the\nstate it has to protect has already changed. Before commit d34ba2168a3c\n(\"mac80211: don't delay station destruction\") cleanup was deferred\nthrough the same ordered workqueue as the delivery work, which kept the\ntwo ordered.\n\nCancel the work after setting sta->dead and before moving the driver\nstate, and move the existing cancellation to the start of\n__cleanup_single_sta(). The first drain closes the driver-lifetime window;\ndriver callbacks during the remaining state transitions can still queue\ndrv_deliver_wk through ieee80211_sta_block_awake(), so retain the second\ndrain at the start of __cleanup_single_sta(). That drain also covers\ninsertion failures, which reach cleanup without setting sta->dead."
    }
  ],
  "lastModified": "2026-10-19T10:19:34.903",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}