{
  "cveId": "CVE-2026-64396",
  "url": "https://patchblox.com/security/cve/CVE-2026-64396",
  "summary": "CVE-2026-64396 is fixed in 2 products on 1 platform, first by DEBIAN-CVE-2026-64396, released July 26, 2026. It is not reported as exploited. Patch Radar priority: High.",
  "title": "linux: In the Linux kernel, the following vulnerability has been resolved:  ksmbd: fix UAF of struct file_lock in SMB2_LOCK...",
  "description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: fix UAF of struct file_lock in SMB2_LOCK deferred-lock cancellation  When a blocking byte-range lock request is deferred in the FILE_LOCK_DEFERRED path, ksmbd registers the asynchronous work into the connection\u0027s async_requests list via setup_async_work(). The cancel callback smb2_remove_blocked_lock() holds a reference to the flock.  If the lock waiter is subsequently woken up but the work state is no longer KSMBD_WORK_ACTIVE (e.g., due to a concurrent cancellation), the cleanup path calls locks_free_lock(flock) without dequeuing the work from the async_requests list. Concurrently, smb2_cancel() walks the list under conn-\u003Erequest_lock and invokes the cancel callback, which then dereferences the already freed \u0027flock\u0027. This leads to a slab-use-after-free inside __wake_up_common.  Fix this by restructuring the cleanup logic after the worker returns from ksmbd_vfs_posix_lock_wait(). Move list_del(\u0026smb_lock-\u003Ellist) and release_async_work(work) to the top of the cleanup block. This guarantees that the async work is completely dequeued and serialized under conn-\u003Erequest_lock before locks_free_lock(flock) is called, rendering the flock unreachable for any concurrent smb2_cancel().",
  "published": "2026-07-25T10:17:23Z",
  "severity": "high",
  "cvss": 8.8,
  "cvssVector": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
  "epss": 0.00435,
  "epssPercentile": 0.38012,
  "priority": "High",
  "priorityTier": 3,
  "exploited": false,
  "vendorExploited": false,
  "disclosed": false,
  "fixes": [
    {
      "platform": "linux",
      "product": "linux",
      "release": "Debian 12.15 (bookworm)",
      "fixedVersion": "6.1.180-1",
      "fix": "DEBIAN-CVE-2026-64396",
      "url": "https://patchblox.com/security/fix/linux/debian-cve-2026-64396",
      "released": "2026-07-26T13:52:50Z"
    },
    {
      "platform": "linux",
      "product": "linux",
      "release": "Debian 13.5 (trixie)",
      "fixedVersion": "6.12.96-1",
      "fix": "DEBIAN-CVE-2026-64396",
      "url": "https://patchblox.com/security/fix/linux/debian-cve-2026-64396",
      "released": "2026-07-26T13:52:50Z"
    },
    {
      "platform": "linux",
      "product": "linux",
      "release": "Debian 14",
      "fixedVersion": "7.1.4-1",
      "fix": "DEBIAN-CVE-2026-64396",
      "url": "https://patchblox.com/security/fix/linux/debian-cve-2026-64396",
      "released": "2026-07-26T13:52:50Z"
    },
    {
      "platform": "linux",
      "product": "linux-6.12",
      "release": "Debian 12.15 (bookworm)",
      "fixedVersion": "6.12.100-1~deb12u1",
      "fix": "DEBIAN-CVE-2026-64396",
      "url": "https://patchblox.com/security/fix/linux/debian-cve-2026-64396",
      "released": "2026-07-26T13:52:50Z"
    }
  ],
  "noFixYet": [],
  "dataAsOf": "2026-11-08T06:59:42Z",
  "attribution": {
    "text": "Data: Patchblox Patch Radar",
    "url": "https://patchblox.com/security/patch-radar",
    "terms": "https://patchblox.com/security/patch-radar/use-the-data"
  }
}