« Volver al listado

CVE-2026-97949

Estado: RecibidaSin puntuar—

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

configfs: unhash the dentry before dropping the item in rmdir

configfs_get_config_item() treats a hashed dentry as proof that sd->s_element is a live config_item. configfs_rmdir() breaks that: simple_rmdir() leaves the dentry hashed, the last reference to the item is dropped right after, and the dentry is only unhashed by d_delete() once ->rmdir() has returned. configfs_symlink() resolves its target holding no lock on it, so get_target() can land in that window:

Unhash in configfs_remove_dir(), while the item is still guaranteed to be there.

Leer descripción completaMostrar menos

A reference obtained just before that stays harmless, as create_link() rechecks CONFIGFS_USET_DROPPING, already set by configfs_detach_prep(). Both configfs_unregister_subsystem() paths d_drop() after detaching, so this only makes rmdir match them.

Detalles técnicos trazas, registros y código del informe original
  BUG: KASAN: slab-use-after-free in config_item_get+0x26/0x90
   get_target fs/configfs/symlink.c:128 [inline]
   configfs_symlink+0x4ab/0x1030 fs/configfs/symlink.c:185

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-97949",
  "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": "7063fbf2261194f72ee75afca67b3b38b554b5fa",
              "lessThan": "446720051d44eebaa81b33969173160057b73a33",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "7063fbf2261194f72ee75afca67b3b38b554b5fa",
              "lessThan": "5d7cbfb65e47cc71d5d94d87d5d0d1679080f3eb",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "7063fbf2261194f72ee75afca67b3b38b554b5fa",
              "lessThan": "925d8564f1b2d9b46c5ab63b9bc942cea006da9b",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "7063fbf2261194f72ee75afca67b3b38b554b5fa",
              "lessThan": "f06c2d26d1999d37e93299db0ecead04ca7d0b9f",
              "versionType": "git"
            }
          ],
          "programFiles": [
            "fs/configfs/dir.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.16"
            },
            {
              "status": "unaffected",
              "version": "0",
              "lessThan": "2.6.16",
              "versionType": "semver"
            },
            {
              "status": "unaffected",
              "version": "6.12.112",
              "versionType": "semver",
              "lessThanOrEqual": "6.12.*"
            },
            {
              "status": "unaffected",
              "version": "6.18.53",
              "versionType": "semver",
              "lessThanOrEqual": "6.18.*"
            },
            {
              "status": "unaffected",
              "version": "7.2.7",
              "versionType": "semver",
              "lessThanOrEqual": "7.2.*"
            },
            {
              "status": "unaffected",
              "version": "7.3-rc3",
              "versionType": "original_commit_for_fix",
              "lessThanOrEqual": "*"
            }
          ],
          "programFiles": [
            "fs/configfs/dir.c"
          ],
          "defaultStatus": "affected"
        }
      ]
    }
  ],
  "published": "2026-09-25T11:17:22.453",
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/446720051d44eebaa81b33969173160057b73a33",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/5d7cbfb65e47cc71d5d94d87d5d0d1679080f3eb",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/925d8564f1b2d9b46c5ab63b9bc942cea006da9b",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/f06c2d26d1999d37e93299db0ecead04ca7d0b9f",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ],
  "vulnStatus": "Received",
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nconfigfs: unhash the dentry before dropping the item in rmdir\n\nconfigfs_get_config_item() treats a hashed dentry as proof that\nsd->s_element is a live config_item.  configfs_rmdir() breaks that:\nsimple_rmdir() leaves the dentry hashed, the last reference to the item is\ndropped right after, and the dentry is only unhashed by d_delete() once\n->rmdir() has returned.  configfs_symlink() resolves its target holding no\nlock on it, so get_target() can land in that window:\n\n  BUG: KASAN: slab-use-after-free in config_item_get+0x26/0x90\n   get_target fs/configfs/symlink.c:128 [inline]\n   configfs_symlink+0x4ab/0x1030 fs/configfs/symlink.c:185\n\nUnhash in configfs_remove_dir(), while the item is still guaranteed to be\nthere.  A reference obtained just before that stays harmless, as\ncreate_link() rechecks CONFIGFS_USET_DROPPING, already set by\nconfigfs_detach_prep().  Both configfs_unregister_subsystem() paths\nd_drop() after detaching, so this only makes rmdir match them."
    }
  ],
  "lastModified": "2026-10-03T11:18:20.103",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}