CVE-2026-98796

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:

net: ethernet: mtk_eth_soc: asignar el netdev ficticio antes

Los anillos RX y el NAPI compartido se transportan a través de un netdev "ficticio" interno (eth->dummy_dev). mtk_probe() crea ese dispositivo ficticio, y añade al mismo el NAPI compartido de tx/rx, solo después de que se hayan registrado los netdev de las MAC. Este orden existe desde que se añadió el soporte para el MT7623 y deja una ventana en la que los netdev son visibles para el núcleo de red antes de que existan el NAPI compartido y el dispositivo ficticio.

Si algo activa el primer netdev durante esa ventana (por ejemplo, netifd abriendo el enlace WAN en cuanto se registra la interfaz), la ruta de primera apertura se ejecuta sin ellos.

Leer descripción completaMostrar menos

En los SoC NETSYS v2 y posteriores, mtk_rx_alloc() -> __xdp_rxq_info_reg() desreferencia entonces eth->dummy_dev == NULL:

en net/core/xdp.c, y mtk_open() falla con -ENODEV. En los SoC NETSYS v1 (MT7621/MT7622/MT7623/MT7629) no hay page pool, por lo que la misma apertura llama en su lugar a napi_enable() sobre una napi_struct que netif_napi_add() aún no ha inicializado, y desreferencia un napi->dev NULL.

Asigne el netdev ficticio y añada al mismo el NAPI compartido de tx/rx antes del bucle de register_netdev(). Tanto el fallo de asignación del dispositivo ficticio como un fallo de register_netdev() ahora deshacen los pasos mediante mtk_unreg_dev(), que desregistra los notificadores de net_device y los netdev registrados hasta ese momento, deteniendo un netdev abierto concurrentemente (ndo_stop) y su NAPI antes de liberar el portador ficticio.

Un netdev que se abrió durante la ventana también puede haber puesto en cola el worker de reinicio del motor de tramas (mediante el watchdog de tx o phylink), por lo que la ruta de error de la sonda ahora cancela eth->pending_work antes de liberar el estado compartido, como ya hace mtk_cleanup() al eliminar el módulo.

Detalles técnicos trazas, registros y código del informe original
  WARNING: CPU: ... Missing net_device from driver

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-98796",
  "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": "656e705243fd0c2864b89634ea16ed444ef64dc6",
              "lessThan": "42001839e425b2564b7297be579073a13a8fddf6",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "656e705243fd0c2864b89634ea16ed444ef64dc6",
              "lessThan": "82be3d08de9e14d5aed72377f051adb4f09fd540",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "656e705243fd0c2864b89634ea16ed444ef64dc6",
              "lessThan": "17eafd74de5a31e30361420a2e3ebf64186b77e5",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "656e705243fd0c2864b89634ea16ed444ef64dc6",
              "lessThan": "6f0c2c4f5e7143eba75153ecc8af3a03f7b6a98b",
              "versionType": "git"
            }
          ],
          "programFiles": [
            "drivers/net/ethernet/mediatek/mtk_eth_soc.c"
          ],
          "defaultStatus": "unaffected"
        },
        {
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "product": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "4.6"
            },
            {
              "status": "unaffected",
              "version": "0",
              "lessThan": "4.6",
              "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/ethernet/mediatek/mtk_eth_soc.c"
          ],
          "defaultStatus": "affected"
        }
      ]
    }
  ],
  "published": "2026-10-18T16:17:33.583",
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/17eafd74de5a31e30361420a2e3ebf64186b77e5",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/42001839e425b2564b7297be579073a13a8fddf6",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/6f0c2c4f5e7143eba75153ecc8af3a03f7b6a98b",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/82be3d08de9e14d5aed72377f051adb4f09fd540",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ],
  "vulnStatus": "Received",
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: ethernet: mtk_eth_soc: allocate dummy netdev sooner\n\nThe RX rings and the shared NAPI are carried by an internal \"dummy\" netdev\n(eth->dummy_dev). mtk_probe() creates that dummy device, and adds the\nshared tx/rx NAPI to it, only after the MAC netdevs have been registered.\nThat order has been there since the MT7623 support was added and leaves a\nwindow in which the netdevs are visible to the network core before the\nshared NAPI and the dummy device exist.\n\nIf anything brings the first netdev up during that window (e.g. netifd\nopening the WAN link the instant the interface is registered), the\nfirst-open path runs without them. On NETSYS v2 and later SoCs\nmtk_rx_alloc() -> __xdp_rxq_info_reg() then dereferences eth->dummy_dev ==\nNULL:\n\n  WARNING: CPU: ... Missing net_device from driver\n\nin net/core/xdp.c and mtk_open() fails with -ENODEV. On NETSYS v1 SoCs\n(MT7621/MT7622/MT7623/MT7629) there is no page pool, so the same open\ninstead calls napi_enable() on a napi_struct that netif_napi_add() has not\ninitialised yet and dereferences a NULL napi->dev.\n\nAllocate the dummy netdev and add the shared tx/rx NAPI to it before the\nregister_netdev() loop. Both the dummy-allocation failure and a\nregister_netdev() failure now unwind through mtk_unreg_dev(), which\nunregisters the net_device notifiers and the netdevs registered so far,\nstopping a concurrently-opened netdev (ndo_stop) and its NAPI before the\ndummy carrier is freed.\n\nA netdev that opened during the window can also have queued the\nframe-engine reset worker (via the tx watchdog or phylink), so the probe\nerror path now cancels eth->pending_work before freeing the shared state,\nas mtk_cleanup() already does on remove."
    }
  ],
  "lastModified": "2026-10-19T10:19:43.607",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}