« Volver al listado

CVE-2026-90140

Estado: RecibidaSin puntuar—

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

cuse: wait for pending RCU callbacks on module exit

Since commit 053fc4f755ad ("fuse: fix UAF in rcu pathwalks"), fuse_conn_put() frees the fuse_conn through call_rcu() rather than synchronously. For cuse, fc->release is cuse_fc_release(), which lives in the cuse module. If the module is removed before the RCU grace period ends, the callback jumps into freed module memory:

The freed module text is unmapped by vfree(), so the jump into the stale callback triggers a page-fault Oops. If the virtual address is subsequently reused, the callback could execute unrelated code (undefined behaviour).

Leer descripción completaMostrar menos

Fix this by calling rcu_barrier() in cuse_exit() so that any pending fuse_conn release callback completes before the module is removed.

Detalles técnicos trazas, registros y código del informe original
      userspace / module unload      |        RCU softirq
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 close(/dev/cuse)                    |
  cuse_channel_release()             |
   fuse_dev_release()                |
    fuse_conn_put(fch->conn)         |
     call_rcu(delayed_release) ------+---> callback queued
                                     |
 rmmod cuse                          |
  cuse_exit()                        |
   cuse_channel_destroy()            |
   ...                               |
   return                            |
                                     |
 <module text freed>                 |
                                     |  rcu_do_batch()
                                     |   delayed_release()
                                     |    fc->release()
                                     |     -> cuse_fc_release()
                                     |        ^^^ freed text!

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-90140",
  "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": "bfbab62ca69f72bcd14ea30de1fb98f6080ad464",
              "lessThan": "7fe415e1cd8fa875be263670c0ab47109818abb6",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "a8f650b93e55764ca9ff8e1ddebc151f57024086",
              "lessThan": "45ae914b2f6ea56fc2f1c017fdee4e995bcb4c0e",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "535e9bd0e8f8d8cfdc29de7cdb902b5041427fe6",
              "lessThan": "ac5c499413385cea3e0220d6050408d50842891d",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "053fc4f755ad43cf35210677bcba798ccdc48d0c",
              "lessThan": "a1b46aee33d83f14ed62d7fdef1a91d3e0b732a9",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "053fc4f755ad43cf35210677bcba798ccdc48d0c",
              "lessThan": "389bd349ddbcf90dbd8a4f2a4ab6e552d53df134",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "053fc4f755ad43cf35210677bcba798ccdc48d0c",
              "lessThan": "c40f3f24839f8404325a2099e26c2a04786ae309",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "053fc4f755ad43cf35210677bcba798ccdc48d0c",
              "lessThan": "4deb3edead0c0e172cc7349e8855d741d3c5e162",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "5.15.166",
              "lessThan": "5.15.221",
              "versionType": "semver"
            },
            {
              "status": "affected",
              "version": "6.1.107",
              "lessThan": "6.1.188",
              "versionType": "semver"
            },
            {
              "status": "affected",
              "version": "6.6.48",
              "lessThan": "6.6.157",
              "versionType": "semver"
            }
          ],
          "programFiles": [
            "fs/fuse/cuse.c"
          ],
          "defaultStatus": "unaffected"
        },
        {
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "product": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.8"
            },
            {
              "status": "unaffected",
              "version": "0",
              "lessThan": "6.8",
              "versionType": "semver"
            },
            {
              "status": "unaffected",
              "version": "5.15.221",
              "versionType": "semver",
              "lessThanOrEqual": "5.15.*"
            },
            {
              "status": "unaffected",
              "version": "6.1.188",
              "versionType": "semver",
              "lessThanOrEqual": "6.1.*"
            },
            {
              "status": "unaffected",
              "version": "6.6.157",
              "versionType": "semver",
              "lessThanOrEqual": "6.6.*"
            },
            {
              "status": "unaffected",
              "version": "6.12.110",
              "versionType": "semver",
              "lessThanOrEqual": "6.12.*"
            },
            {
              "status": "unaffected",
              "version": "6.18.52",
              "versionType": "semver",
              "lessThanOrEqual": "6.18.*"
            },
            {
              "status": "unaffected",
              "version": "7.2.6",
              "versionType": "semver",
              "lessThanOrEqual": "7.2.*"
            },
            {
              "status": "unaffected",
              "version": "7.3-rc1",
              "versionType": "original_commit_for_fix",
              "lessThanOrEqual": "*"
            }
          ],
          "programFiles": [
            "fs/fuse/cuse.c"
          ],
          "defaultStatus": "affected"
        }
      ]
    }
  ],
  "published": "2026-09-17T17:17:06.710",
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/389bd349ddbcf90dbd8a4f2a4ab6e552d53df134",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/45ae914b2f6ea56fc2f1c017fdee4e995bcb4c0e",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/4deb3edead0c0e172cc7349e8855d741d3c5e162",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/7fe415e1cd8fa875be263670c0ab47109818abb6",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/a1b46aee33d83f14ed62d7fdef1a91d3e0b732a9",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/ac5c499413385cea3e0220d6050408d50842891d",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/c40f3f24839f8404325a2099e26c2a04786ae309",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ],
  "vulnStatus": "Received",
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ncuse: wait for pending RCU callbacks on module exit\n\nSince commit 053fc4f755ad (\"fuse: fix UAF in rcu pathwalks\"),\nfuse_conn_put() frees the fuse_conn through call_rcu() rather than\nsynchronously.  For cuse, fc->release is cuse_fc_release(), which\nlives in the cuse module.  If the module is removed before the RCU\ngrace period ends, the callback jumps into freed module memory:\n\n      userspace / module unload      |        RCU softirq\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n close(/dev/cuse)                    |\n  cuse_channel_release()             |\n   fuse_dev_release()                |\n    fuse_conn_put(fch->conn)         |\n     call_rcu(delayed_release) ------+---> callback queued\n                                     |\n rmmod cuse                          |\n  cuse_exit()                        |\n   cuse_channel_destroy()            |\n   ...                               |\n   return                            |\n                                     |\n <module text freed>                 |\n                                     |  rcu_do_batch()\n                                     |   delayed_release()\n                                     |    fc->release()\n                                     |     -> cuse_fc_release()\n                                     |        ^^^ freed text!\n\nThe freed module text is unmapped by vfree(), so the jump into the\nstale callback triggers a page-fault Oops.  If the virtual address\nis subsequently reused, the callback could execute unrelated code\n(undefined behaviour).\n\nFix this by calling rcu_barrier() in cuse_exit() so that any pending\nfuse_conn release callback completes before the module is removed."
    }
  ],
  "lastModified": "2026-09-17T17:17:06.710",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}