CVE-2026-98827

Estado: RecibidaSin puntuar—
Gravedad—Sin puntuar
Probabilidad de explotación0.20 %mayor que el 9 % 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: ath9k_htc: limitar la agregación de TX a MAX_TX_BUF_SIZE

__hif_usb_tx() extrae de la cola hasta MAX_TX_AGGR_NUM (20) tramas en un único tx_buf de MAX_TX_BUF_SIZE (32768) bytes, limitando el lote por el número de registros, pero nunca por la longitud acumulada en bytes.

Con tramas grandes (MTU 2304), 20 tramas agregadas de 2292 bytes cada una superan la asignación (20 * 2296 = 45920 bytes), de modo que el memcpy() del bucle escribe hasta 13152 bytes más allá de tx_buf->buf antes de usb_submit_urb().

Consultar el primer elemento de la cola y detenerse antes de copiar cualquier registro que cruzaría MAX_TX_BUF_SIZE, y despachar después el lote actual. Las skb restantes permanecen en cola y se vacían en la siguiente finalización de URB.

Leer descripción completaMostrar menos

El límite en bytes cambia la semántica de salida del bucle: ahora puede salir antes de que i == tx_skb_cnt - 1. En la versión original, tx_buf->len solo se finalizaba en ese último índice (len += offset), de modo que una salida anticipada enviaría una URB que contiene únicamente la longitud del último registro, mientras que cada skb extraída se libera al completarse, descartando tramas en silencio. Hacer que tx_buf->len sea un total acumulado y avanzar tx_buf->offset por cada registro; el paso round_up(nskb->len + 4, 4) es idéntico al paso original cuando el bucle se ejecuta hasta el final.

Probado en hardware con una inundación con MTU 2304: el bucle se detiene en el registro 15 (len = 32144, offset = 32144, dentro de 32768), no se envía ninguna URB de tamaño excesivo, y los pings con MTU 1500 superan 20/20.

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.20 %
Percentil entre todas las CVEs puntuadas
9
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-98827",
  "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": "fb9987d0f748c983bb795a86f47522313f701a08",
              "lessThan": "c18882768a0fe253c70986c5fe66d9241570fbc4",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "fb9987d0f748c983bb795a86f47522313f701a08",
              "lessThan": "345ce265cf604e84b5b560c21beaf4c6f269ab14",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "fb9987d0f748c983bb795a86f47522313f701a08",
              "lessThan": "e73a619f91b6cfec47bc1a94aea28df6849e5be3",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "fb9987d0f748c983bb795a86f47522313f701a08",
              "lessThan": "aeaca27c1db3106967ffbb2b517d98c835f6d500",
              "versionType": "git"
            }
          ],
          "programFiles": [
            "drivers/net/wireless/ath/ath9k/hif_usb.c"
          ],
          "defaultStatus": "unaffected"
        },
        {
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "product": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "2.6.35"
            },
            {
              "status": "unaffected",
              "version": "0",
              "lessThan": "2.6.35",
              "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": [
            "drivers/net/wireless/ath/ath9k/hif_usb.c"
          ],
          "defaultStatus": "affected"
        }
      ]
    }
  ],
  "published": "2026-10-18T16:17:36.937",
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/345ce265cf604e84b5b560c21beaf4c6f269ab14",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/aeaca27c1db3106967ffbb2b517d98c835f6d500",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/c18882768a0fe253c70986c5fe66d9241570fbc4",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/e73a619f91b6cfec47bc1a94aea28df6849e5be3",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ],
  "vulnStatus": "Received",
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: ath9k_htc: bound TX aggregation to MAX_TX_BUF_SIZE\n\n__hif_usb_tx() dequeues up to MAX_TX_AGGR_NUM (20) frames into a\nsingle tx_buf of MAX_TX_BUF_SIZE (32768) bytes, limiting the batch\nby record count but never by cumulative byte length.\n\nWith large frames (MTU 2304), 20 aggregated frames of 2292 bytes\neach exceed the allocation (20 * 2296 = 45920 bytes), so the\nmemcpy() in the loop writes up to 13152 bytes past tx_buf->buf\nbefore usb_submit_urb().\n\nPeek the queue head and stop before copying any record that would\ncross MAX_TX_BUF_SIZE, then dispatch the current batch. Leftover\nskbs remain queued and are drained on the next URB completion.\n\nThe byte bound changes the loop's exit semantics: it can now exit\nbefore i == tx_skb_cnt - 1. Stock only finalized tx_buf->len on\nthat last index (len += offset), so an early break would submit a\nURB holding only the last record's length while every dequeued skb\nis freed on completion, silently dropping frames. Make tx_buf->len\na running total and advance tx_buf->offset per record instead; the\nstride round_up(nskb->len + 4, 4) is identical to the stock stride\nwhen the loop runs to completion.\n\nTested on hardware with an MTU 2304 flood: the loop stops at\nrecord 15 (len = 32144, offset = 32144, within 32768), no\noversized URB is submitted, and MTU 1500 pings pass 20/20."
    }
  ],
  "lastModified": "2026-10-19T10:19:46.750",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}