« Volver al listado

CVE-2026-89661

Estado: RecibidaSin puntuar—

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

NFSD: Prevent post-shutdown use-after-free in unlock_filesystem

Writing a filesystem path to /proc/fs/nfsd/unlock_filesystem runs nfsd4_cancel_copy_by_sb() before nfsd_mutex is held and before the handler confirms that nn->nfsd_serv is set. Once nfsd has shut down, nfs4_state_destroy_net() has freed nn->conf_id_hashtbl but left the pointer intact, so the cancel helper iterates freed slab memory as an array of struct list_head and then dereferences a bogus nfs4_client when it takes clp->async_lock. A local administrator holding CAP_SYS_ADMIN can reach this use-after-free by stopping the server and then writing to unlock_filesystem; KASAN reports a slab-use-after-free read in nfsd4_cancel_copy_by_sb().

Leer descripción completaMostrar menos

nfsd4_revoke_states() walks the same state tables and for that reason already runs only under nfsd_mutex with nn->nfsd_serv confirmed present. Move the async COPY cancel into that protected section so every NFSv4 state-table walker on this path observes a running server. Async copies exist only while the server runs, so gating the cancel on nn->nfsd_serv loses nothing.

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-89661",
  "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": "3daab3112f039cf849f96764019b096bb0a39d04",
              "lessThan": "0c1a755b7212e0835398d4df5e782ea85ccd7476",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "3daab3112f039cf849f96764019b096bb0a39d04",
              "lessThan": "292d915d3ba6fd15eeb88351fa10581683073109",
              "versionType": "git"
            }
          ],
          "programFiles": [
            "fs/nfsd/nfsctl.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.0"
            },
            {
              "status": "unaffected",
              "version": "0",
              "lessThan": "7.0",
              "versionType": "semver"
            },
            {
              "status": "unaffected",
              "version": "7.2.4",
              "versionType": "semver",
              "lessThanOrEqual": "7.2.*"
            },
            {
              "status": "unaffected",
              "version": "7.3-rc1",
              "versionType": "original_commit_for_fix",
              "lessThanOrEqual": "*"
            }
          ],
          "programFiles": [
            "fs/nfsd/nfsctl.c"
          ],
          "defaultStatus": "affected"
        }
      ]
    }
  ],
  "published": "2026-09-11T20:19:52.413",
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/0c1a755b7212e0835398d4df5e782ea85ccd7476",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/292d915d3ba6fd15eeb88351fa10581683073109",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ],
  "vulnStatus": "Received",
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nNFSD: Prevent post-shutdown use-after-free in unlock_filesystem\n\nWriting a filesystem path to /proc/fs/nfsd/unlock_filesystem runs\nnfsd4_cancel_copy_by_sb() before nfsd_mutex is held and before the\nhandler confirms that nn->nfsd_serv is set. Once nfsd has shut down,\nnfs4_state_destroy_net() has freed nn->conf_id_hashtbl but left the\npointer intact, so the cancel helper iterates freed slab memory as an\narray of struct list_head and then dereferences a bogus nfs4_client\nwhen it takes clp->async_lock. A local administrator holding\nCAP_SYS_ADMIN can reach this use-after-free by stopping the server and\nthen writing to unlock_filesystem; KASAN reports a slab-use-after-free\nread in nfsd4_cancel_copy_by_sb().\n\nnfsd4_revoke_states() walks the same state tables and for that reason\nalready runs only under nfsd_mutex with nn->nfsd_serv confirmed\npresent. Move the async COPY cancel into that protected section so\nevery NFSv4 state-table walker on this path observes a running server.\nAsync copies exist only while the server runs, so gating the cancel on\nnn->nfsd_serv loses nothing."
    }
  ],
  "lastModified": "2026-09-11T20:19:52.413",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}