{
  "cveId": "CVE-2026-31477",
  "url": "https://patchblox.com/security/cve/CVE-2026-31477",
  "summary": "CVE-2026-31477 is fixed in linux on 1 platform, first by DEBIAN-CVE-2026-31477, released May 15, 2026. It is not reported as exploited. Patch Radar priority: High.",
  "title": "ksmbd: fix memory leaks and NULL deref in smb2_lock()",
  "description": "In the Linux kernel, the following vulnerability has been resolved:  ksmbd: fix memory leaks and NULL deref in smb2_lock()  smb2_lock() has three error handling issues after list_del() detaches smb_lock from lock_list at no_check_cl:  1) If vfs_lock_file() returns an unexpected error in the non-UNLOCK    path, goto out leaks smb_lock and its flock because the out:    handler only iterates lock_list and rollback_list, neither of    which contains the detached smb_lock.  2) If vfs_lock_file() returns -ENOENT in the UNLOCK path, goto out    leaks smb_lock and flock for the same reason.  The error code    returned to the dispatcher is also stale.  3) In the rollback path, smb_flock_init() can return NULL on    allocation failure.  The result is dereferenced unconditionally,    causing a kernel NULL pointer dereference.  Add a NULL check to    prevent the crash and clean up the bookkeeping; the VFS lock    itself cannot be rolled back without the allocation and will be    released at file or connection teardown.  Fix cases 1 and 2 by hoisting the locks_free_lock()/kfree() to before the if(!rc) check in the UNLOCK branch so all exit paths share one free site, and by freeing smb_lock and flock before goto out in the non-UNLOCK branch.  Propagate the correct error code in both cases. Fix case 3 by wrapping the VFS unlock in an if(rlock) guard and adding a NULL check for locks_free_lock(rlock) in the shared cleanup.  Found via call-graph analysis using sqry.",
  "published": "2026-04-22T14:16:44Z",
  "severity": "Important",
  "cvss": 7.5,
  "cvssVector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
  "epss": 0.00479,
  "epssPercentile": 0.41576,
  "priority": "High",
  "priorityTier": 3,
  "exploited": false,
  "vendorExploited": false,
  "disclosed": false,
  "vendorAdvisory": "https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-31477",
  "fixes": [
    {
      "platform": "linux",
      "product": "linux",
      "release": "Debian 12.15 (bookworm)",
      "fixedVersion": "6.1.170-1",
      "fix": "DEBIAN-CVE-2026-31477",
      "url": "https://patchblox.com/security/fix/linux/debian-cve-2026-31477",
      "released": "2026-05-15T16:01:09Z"
    },
    {
      "platform": "linux",
      "product": "linux",
      "release": "Debian 13.5 (trixie)",
      "fixedVersion": "6.12.85-1",
      "fix": "DEBIAN-CVE-2026-31477",
      "url": "https://patchblox.com/security/fix/linux/debian-cve-2026-31477",
      "released": "2026-05-15T16:01:09Z"
    },
    {
      "platform": "linux",
      "product": "linux",
      "release": "Debian 14",
      "fixedVersion": "6.19.11-1",
      "fix": "DEBIAN-CVE-2026-31477",
      "url": "https://patchblox.com/security/fix/linux/debian-cve-2026-31477",
      "released": "2026-05-15T16:01:09Z"
    }
  ],
  "noFixYet": [],
  "dataAsOf": "2026-11-08T13:06:02Z",
  "attribution": {
    "text": "Data: Patchblox Patch Radar",
    "url": "https://patchblox.com/security/patch-radar",
    "terms": "https://patchblox.com/security/patch-radar/use-the-data"
  }
}