{
  "affected": [
    {
      "ecosystem_specific": {
        "urgency": "not yet assigned"
      },
      "package": {
        "ecosystem": "Debian:12",
        "name": "linux"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    },
    {
      "ecosystem_specific": {
        "urgency": "not yet assigned"
      },
      "package": {
        "ecosystem": "Debian:13",
        "name": "linux"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    },
    {
      "ecosystem_specific": {
        "urgency": "not yet assigned"
      },
      "package": {
        "ecosystem": "Debian:14",
        "name": "linux"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "7.2.6-1"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    }
  ],
  "details": "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-\u003erelease 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:        userspace / module unload      |        RCU softirq ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  close(/dev/cuse)                    |   cuse_channel_release()             |    fuse_dev_release()                |     fuse_conn_put(fch-\u003econn)         |      call_rcu(delayed_release) ------+---\u003e callback queued                                      |  rmmod cuse                          |   cuse_exit()                        |    cuse_channel_destroy()            |    ...                               |    return                            |                                      |  \u003cmodule text freed\u003e                 |                                      |  rcu_do_batch()                                      |   delayed_release()                                      |    fc-\u003erelease()                                      |     -\u003e cuse_fc_release()                                      |        ^^^ freed text!  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).  Fix this by calling rcu_barrier() in cuse_exit() so that any pending fuse_conn release callback completes before the module is removed.",
  "id": "DEBIAN-CVE-2026-90140",
  "modified": "2026-09-23T03:47:31.663333129Z",
  "published": "2026-09-17T17:17:06.710Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://security-tracker.debian.org/tracker/CVE-2026-90140"
    }
  ],
  "upstream": [
    "CVE-2026-90140"
  ]
}