« Volver al listado

CVE-2026-98219

Estado: RecibidaSin puntuar—

In the Linux kernel, the following vulnerability has been resolved:

sched_ext: Close the pre-enable ops error claim window

scx_alloc_and_add_sched() publishes ops->priv before scx_root_enable_workfn() switches the state to SCX_ENABLING. An error claimed via scx_bpf_error_bstr() from an associated BPF program in that window is consumed by scx_disable_workfn(), which takes the pre-enable shortcut in scx_root_disable(). The shortcut returns without any teardown and restores SCX_DISABLED with an unconditional scx_set_enable_state() xchg racing the enable workfn's own transition.

Leer descripción completaMostrar menos

The enable then completes with the claim consumed: the scheduler stays up but can never be disabled again, and bpf_scx_unreg() frees it while still in use, resulting in a use-after-free. Both WARN_ON_ONCE()s fire back to back:

scx_root_enable_workfn() switches to SCX_ENABLING before the scheduler allocation, so ops->priv is never visible while SCX_DISABLED. The allocation failure path restores SCX_DISABLED.

Detalles técnicos trazas, registros y código del informe original
  WARNING: kernel/sched/ext/ext.c:7522 at
  scx_root_enable_workfn+0xeec/0x1be0, CPU#3: scx_enable_help/276

  WARNING: kernel/sched/ext/ext.c:6398 at scx_root_disable+0xb50/0xdb8,
  CPU#0: sched_ext_helpe/664

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)

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

JSON original (NVD)

Mostrar
{
  "id": "CVE-2026-98219",
  "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": "105dcd005be2ac1d5541921db8feb1d0f98d59d5",
              "lessThan": "959c66dc4a915be306c35691095c787c61dc7df9",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "105dcd005be2ac1d5541921db8feb1d0f98d59d5",
              "lessThan": "c7a1c6e8004ab12a9c9bfdcb603f60f9bf4a3cee",
              "versionType": "git"
            }
          ],
          "programFiles": [
            "kernel/sched/ext/ext.c"
          ],
          "defaultStatus": "unaffected"
        },
        {
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "product": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "7.1"
            },
            {
              "status": "unaffected",
              "version": "0",
              "lessThan": "7.1",
              "versionType": "semver"
            },
            {
              "status": "unaffected",
              "version": "7.2.8",
              "versionType": "semver",
              "lessThanOrEqual": "7.2.*"
            },
            {
              "status": "unaffected",
              "version": "7.3-rc4",
              "versionType": "original_commit_for_fix",
              "lessThanOrEqual": "*"
            }
          ],
          "programFiles": [
            "kernel/sched/ext/ext.c"
          ],
          "defaultStatus": "affected"
        }
      ]
    }
  ],
  "published": "2026-10-06T09:18:08.730",
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/959c66dc4a915be306c35691095c787c61dc7df9",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/c7a1c6e8004ab12a9c9bfdcb603f60f9bf4a3cee",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ],
  "vulnStatus": "Received",
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsched_ext: Close the pre-enable ops error claim window\n\nscx_alloc_and_add_sched() publishes ops->priv before\nscx_root_enable_workfn() switches the state to SCX_ENABLING. An error\nclaimed via scx_bpf_error_bstr() from an associated BPF program in that\nwindow is consumed by scx_disable_workfn(), which takes the pre-enable\nshortcut in scx_root_disable(). The shortcut returns without any teardown\nand restores SCX_DISABLED with an unconditional scx_set_enable_state() xchg\nracing the enable workfn's own transition. The enable then completes with\nthe claim consumed: the scheduler stays up but can never be disabled again,\nand bpf_scx_unreg() frees it while still in use, resulting in a\nuse-after-free. Both WARN_ON_ONCE()s fire back to back:\n\n  WARNING: kernel/sched/ext/ext.c:7522 at\n  scx_root_enable_workfn+0xeec/0x1be0, CPU#3: scx_enable_help/276\n\n  WARNING: kernel/sched/ext/ext.c:6398 at scx_root_disable+0xb50/0xdb8,\n  CPU#0: sched_ext_helpe/664\n\nscx_root_enable_workfn() switches to SCX_ENABLING before the scheduler\nallocation, so ops->priv is never visible while SCX_DISABLED. The allocation\nfailure path restores SCX_DISABLED."
    }
  ],
  "lastModified": "2026-10-06T09:18:08.730",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}