GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

CVE-2026-64142 (GCVE-0-2026-64142)

Vulnerability from cvelistv5 – Published: 2026-07-19 15:40 – Updated: 2026-08-05 12:39
VLAI
Title
ksmbd: close durable scavenger races against m_fp_list lookups
Summary
In the Linux kernel, the following vulnerability has been resolved: ksmbd: close durable scavenger races against m_fp_list lookups ksmbd_durable_scavenger() has two related races against any walker that iterates f_ci->m_fp_list, including ksmbd_lookup_fd_inode() (used by ksmbd_vfs_rename) and the share-mode checks in fs/smb/server/smb_common.c. (1) fp->node list-head reuse. Durable-preserved handles can remain linked on f_ci->m_fp_list after session teardown so share-mode checks still see them while the handle is reconnectable. The scavenger collected expired handles by adding fp->node to a local scavenger_list after removing them from the global durable idr. Because fp->node is the same list_head used by m_fp_list, list_add(&fp->node, &scavenger_list) overwrites the m_fp_list links and corrupts both lists. CONFIG_DEBUG_LIST can report this on the share-mode walk path. (2) Refcount race against m_fp_list walkers. The scavenger qualifies an expired durable handle with atomic_read(&fp->refcount) > 1 and fp->conn under global_ft.lock, removes fp from global_ft, then drops global_ft.lock before unlinking fp from m_fp_list and freeing it. During that gap fp is still linked on m_fp_list with f_state == FP_INITED. ksmbd_lookup_fd_inode() under m_lock read calls ksmbd_fp_get() (atomic_inc_not_zero on refcount that is still 1) and takes a live reference; the scavenger then unlinks and frees fp while the holder owns a reference, leading to UAF on the holder's subsequent ksmbd_fd_put() and on any field reads performed by a concurrent share-mode walker that iterates m_fp_list without taking ksmbd_fp_get() (smb_check_perm_dleases-like paths). Fix both: * Stop reusing fp->node as a scavenger-private list node. Remove one expired handle from global_ft under global_ft.lock, take an explicit transient reference, drop the lock, unlink fp->node from m_fp_list under f_ci->m_lock, then drop both the durable lifetime and transient references with atomic_sub_and_test(2, &fp->refcount). If the scavenger is the last putter the close runs there; otherwise an in-flight holder that already raced through the m_fp_list lookup owns the final close via its ksmbd_fd_put() path. The one-at-a-time disposal can rescan the durable idr when multiple handles expire in the same pass, but durable scavenging is a background expiration path and the final full scan recomputes min_timeout before the next wait. * Clear fp->persistent_id inside __ksmbd_remove_durable_fd() right after idr_remove(), so a delayed final close from a holder that snatched fp does not re-issue idr_remove() on a persistent id that idr_alloc_cyclic() in ksmbd_open_durable_fd() may have already handed out to a brand-new durable handle. * Bypass the per-conn open_files_count decrement in __put_fd_final() when fp is detached from any session table (fp->conn cleared by session_fd_check() at durable preserve -- paired with the volatile_id clear at unpublish, so checking fp->conn alone is sufficient). The walker that owns the final close runs from an unrelated work->conn whose stats.open_files_count never tracked this durable fp; without this guard the holder would underflow that unrelated counter. The two races are folded into one patch because patch (1) alone cleans up the corrupted list but leaves a deterministic UAF window for m_fp_list walkers that the transient-reference and persistent_id discipline in (2) close; bisecting onto an intermediate state would land on a UAF that pre-patch chaos merely made less reproducible. Validation: * CONFIG_DEBUG_LIST coverage for the list_head reuse path. * KASAN-enabled direct SMB2 durable-handle coverage that exercised ksmbd_durable_scavenger() and non-NULL ksmbd_lookup_fd_inode() returns while durable handles expired under concurrent rename lookups, with no KASAN, UAF, list-corruption, ODEBUG, or WARNING reports. ---truncated---
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 7f0cb478703cbeaddfe5c9101c5c73cd975d1073 , < 3a436932eb397e909d0607d76a8325abd9d85a35 (git)
Affected: d484d621d40f4a8b8959008802d79bef3609641b , < 95f072ef934ca00711d510676b8792cbf59a5aae (git)
Affected: d484d621d40f4a8b8959008802d79bef3609641b , < 5da69a65b282d2276de22e5194ba0f88c836170c (git)
Affected: d484d621d40f4a8b8959008802d79bef3609641b , < 1f8f3246d55f89350a1a67bdf3744b7241048e4e (git)
Affected: d484d621d40f4a8b8959008802d79bef3609641b , < bf736184d063da1a552ffeff0481813599a182cc (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.11
Unaffected: 0 , < 6.11 (semver)
Unaffected: 6.12.92 , ≤ 6.12.* (semver)
Unaffected: 6.18.34 , ≤ 6.18.* (semver)
Unaffected: 7.0.11 , ≤ 7.0.* (semver)
Unaffected: 7.1 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "fs/smb/server/vfs_cache.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "3a436932eb397e909d0607d76a8325abd9d85a35",
              "status": "affected",
              "version": "7f0cb478703cbeaddfe5c9101c5c73cd975d1073",
              "versionType": "git"
            },
            {
              "lessThan": "95f072ef934ca00711d510676b8792cbf59a5aae",
              "status": "affected",
              "version": "d484d621d40f4a8b8959008802d79bef3609641b",
              "versionType": "git"
            },
            {
              "lessThan": "5da69a65b282d2276de22e5194ba0f88c836170c",
              "status": "affected",
              "version": "d484d621d40f4a8b8959008802d79bef3609641b",
              "versionType": "git"
            },
            {
              "lessThan": "1f8f3246d55f89350a1a67bdf3744b7241048e4e",
              "status": "affected",
              "version": "d484d621d40f4a8b8959008802d79bef3609641b",
              "versionType": "git"
            },
            {
              "lessThan": "bf736184d063da1a552ffeff0481813599a182cc",
              "status": "affected",
              "version": "d484d621d40f4a8b8959008802d79bef3609641b",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "fs/smb/server/vfs_cache.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.11"
            },
            {
              "lessThan": "6.11",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.92",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.34",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.0.*",
              "status": "unaffected",
              "version": "7.0.11",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.1",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.92",
                  "versionStartIncluding": "6.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.34",
                  "versionStartIncluding": "6.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.0.11",
                  "versionStartIncluding": "6.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1",
                  "versionStartIncluding": "6.11",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nksmbd: close durable scavenger races against m_fp_list lookups\n\nksmbd_durable_scavenger() has two related races against any walker\nthat iterates f_ci-\u003em_fp_list, including ksmbd_lookup_fd_inode()\n(used by ksmbd_vfs_rename) and the share-mode checks in\nfs/smb/server/smb_common.c.\n\n(1) fp-\u003enode list-head reuse.  Durable-preserved handles can remain\nlinked on f_ci-\u003em_fp_list after session teardown so share-mode checks\nstill see them while the handle is reconnectable.  The scavenger\ncollected expired handles by adding fp-\u003enode to a local\nscavenger_list after removing them from the global durable idr.\nBecause fp-\u003enode is the same list_head used by m_fp_list,\nlist_add(\u0026fp-\u003enode, \u0026scavenger_list) overwrites the m_fp_list links\nand corrupts both lists.  CONFIG_DEBUG_LIST can report this on the\nshare-mode walk path.\n\n(2) Refcount race against m_fp_list walkers.  The scavenger qualifies\nan expired durable handle with atomic_read(\u0026fp-\u003erefcount) \u003e 1 and\nfp-\u003econn under global_ft.lock, removes fp from global_ft, then drops\nglobal_ft.lock before unlinking fp from m_fp_list and freeing it.\nDuring that gap fp is still linked on m_fp_list with f_state ==\nFP_INITED.  ksmbd_lookup_fd_inode() under m_lock read calls\nksmbd_fp_get() (atomic_inc_not_zero on refcount that is still 1) and\ntakes a live reference; the scavenger then unlinks and frees fp\nwhile the holder owns a reference, leading to UAF on the holder\u0027s\nsubsequent ksmbd_fd_put() and on any field reads performed by a\nconcurrent share-mode walker that iterates m_fp_list without taking\nksmbd_fp_get() (smb_check_perm_dleases-like paths).\n\nFix both:\n\n  * Stop reusing fp-\u003enode as a scavenger-private list node.  Remove\n    one expired handle from global_ft under global_ft.lock, take an\n    explicit transient reference, drop the lock, unlink fp-\u003enode\n    from m_fp_list under f_ci-\u003em_lock, then drop both the durable\n    lifetime and transient references with atomic_sub_and_test(2,\n    \u0026fp-\u003erefcount).  If the scavenger is the last putter the close\n    runs there; otherwise an in-flight holder that already raced\n    through the m_fp_list lookup owns the final close via its\n    ksmbd_fd_put() path.  The one-at-a-time disposal can rescan the\n    durable idr when multiple handles expire in the same pass, but\n    durable scavenging is a background expiration path and the final\n    full scan recomputes min_timeout before the next wait.\n\n  * Clear fp-\u003epersistent_id inside __ksmbd_remove_durable_fd() right\n    after idr_remove(), so a delayed final close from a holder that\n    snatched fp does not re-issue idr_remove() on a persistent id\n    that idr_alloc_cyclic() in ksmbd_open_durable_fd() may have\n    already handed out to a brand-new durable handle.\n\n  * Bypass the per-conn open_files_count decrement in\n    __put_fd_final() when fp is detached from any session table\n    (fp-\u003econn cleared by session_fd_check() at durable preserve --\n    paired with the volatile_id clear at unpublish, so checking\n    fp-\u003econn alone is sufficient).  The walker that owns the final\n    close runs from an unrelated work-\u003econn whose\n    stats.open_files_count never tracked this durable fp; without\n    this guard the holder would underflow that unrelated counter.\n\nThe two races are folded into one patch because patch (1) alone\ncleans up the corrupted list but leaves a deterministic UAF window\nfor m_fp_list walkers that the transient-reference and\npersistent_id discipline in (2) close; bisecting onto an\nintermediate state would land on a UAF that pre-patch chaos merely\nmade less reproducible.\n\nValidation:\n  * CONFIG_DEBUG_LIST coverage for the list_head reuse path.\n  * KASAN-enabled direct SMB2 durable-handle coverage that exercised\n    ksmbd_durable_scavenger() and non-NULL ksmbd_lookup_fd_inode()\n    returns while durable handles expired under concurrent rename\n    lookups, with no KASAN, UAF, list-corruption, ODEBUG, or WARNING\n    reports.\n---truncated---"
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 9.8,
            "baseSeverity": "CRITICAL",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:N - The bug is in ksmbd, the in-kernel SMB server reachable over TCP port 445; exploitation is driven by remote SMB2 packets that set up durable handles, tear down sessions, and issue concurrent rename/open operations.\nAC:L - The attacker controls both sides of the race by opening a durable handle, logging off/disconnecting to enter durable-preserve state, waiting for the configured scavenger timeout, and flooding concurrent SMB2 rename or create requests timed to the scavenger expiration window.\nPR:N - Exploitation requires only network reachability to ksmbd and normal SMB session authentication (including guest/anonymous shares); no pre-existing OS privileges, capabilities, or local access are needed beyond share-level SMB access obtainable through the protocol itself.\nUI:N - No victim user interaction is required beyond a server running ksmbd with durable handles enabled; the attacker drives the entire sequence of SMB operations programmatically.\nS:U - Impact is confined to kernel memory corruption and privilege escalation within the same kernel security boundary; this is not a VM escape or cross-authority boundary bypass.\nC:H - The refcount race produces a deterministic use-after-free on ksmbd_file structures, and share-mode walkers read fields from freed objects without refcount protection, enabling arbitrary kernel memory disclosure via heap reuse.\nI:H - Use-after-free on slab-allocated ksmbd_file objects and corruption of m_fp_list linked lists provide memory corruption primitives that can be leveraged for arbitrary kernel writes and control-flow hijacking.\nA:H - List corruption and use-after-free on kernel linked lists and file handle structures can cause kernel oops, BUG_ON from CONFIG_DEBUG_LIST, or panic, and the scavenger race is repeatable on each durable handle expiration cycle."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T12:39:42.662Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/3a436932eb397e909d0607d76a8325abd9d85a35"
        },
        {
          "url": "https://git.kernel.org/stable/c/95f072ef934ca00711d510676b8792cbf59a5aae"
        },
        {
          "url": "https://git.kernel.org/stable/c/5da69a65b282d2276de22e5194ba0f88c836170c"
        },
        {
          "url": "https://git.kernel.org/stable/c/1f8f3246d55f89350a1a67bdf3744b7241048e4e"
        },
        {
          "url": "https://git.kernel.org/stable/c/bf736184d063da1a552ffeff0481813599a182cc"
        }
      ],
      "title": "ksmbd: close durable scavenger races against m_fp_list lookups",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-64142",
    "datePublished": "2026-07-19T15:40:34.605Z",
    "dateReserved": "2026-07-19T07:54:57.037Z",
    "dateUpdated": "2026-08-05T12:39:42.662Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-64142",
      "date": "2026-09-19",
      "epss": "0.00527",
      "percentile": "0.43554"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "fs/smb/server/vfs_cache.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "3a436932eb397e909d0607d76a8325abd9d85a35",
                    "status": "affected",
                    "version": "7f0cb478703cbeaddfe5c9101c5c73cd975d1073",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "95f072ef934ca00711d510676b8792cbf59a5aae",
                    "status": "affected",
                    "version": "d484d621d40f4a8b8959008802d79bef3609641b",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "5da69a65b282d2276de22e5194ba0f88c836170c",
                    "status": "affected",
                    "version": "d484d621d40f4a8b8959008802d79bef3609641b",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "1f8f3246d55f89350a1a67bdf3744b7241048e4e",
                    "status": "affected",
                    "version": "d484d621d40f4a8b8959008802d79bef3609641b",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "bf736184d063da1a552ffeff0481813599a182cc",
                    "status": "affected",
                    "version": "d484d621d40f4a8b8959008802d79bef3609641b",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "fs/smb/server/vfs_cache.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "6.11"
                  },
                  {
                    "lessThan": "6.11",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.12.*",
                    "status": "unaffected",
                    "version": "6.12.92",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.18.*",
                    "status": "unaffected",
                    "version": "6.18.34",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.0.*",
                    "status": "unaffected",
                    "version": "7.0.11",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "7.1",
                    "versionType": "original_commit_for_fix"
                  }
                ]
              }
            ],
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
          }
        ],
        "configurations": [
          {
            "nodes": [
              {
                "cpeMatch": [
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                    "matchCriteriaId": "AFEC5E32-5D1A-40AF-B543-F621484B76AA",
                    "versionEndExcluding": "6.12.92",
                    "versionStartIncluding": "6.11",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                    "matchCriteriaId": "A4B1EF6D-18D7-4838-BC37-7499D5DCC3C0",
                    "versionEndExcluding": "6.18.34",
                    "versionStartIncluding": "6.13",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                    "matchCriteriaId": "0520D091-FC52-4A50-AF07-70AE7D08B750",
                    "versionEndExcluding": "7.0.11",
                    "versionStartIncluding": "6.19",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:7.1:rc1:*:*:*:*:*:*",
                    "matchCriteriaId": "B1EF7059-E670-45F4-B422-54C40FA86390",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:7.1:rc2:*:*:*:*:*:*",
                    "matchCriteriaId": "0D38F0BF-A728-4133-A358-D44A2F7EE6D6",
                    "vulnerable": true
                  }
                ],
                "negate": false,
                "operator": "OR"
              }
            ]
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nksmbd: close durable scavenger races against m_fp_list lookups\n\nksmbd_durable_scavenger() has two related races against any walker\nthat iterates f_ci-\u003em_fp_list, including ksmbd_lookup_fd_inode()\n(used by ksmbd_vfs_rename) and the share-mode checks in\nfs/smb/server/smb_common.c.\n\n(1) fp-\u003enode list-head reuse.  Durable-preserved handles can remain\nlinked on f_ci-\u003em_fp_list after session teardown so share-mode checks\nstill see them while the handle is reconnectable.  The scavenger\ncollected expired handles by adding fp-\u003enode to a local\nscavenger_list after removing them from the global durable idr.\nBecause fp-\u003enode is the same list_head used by m_fp_list,\nlist_add(\u0026fp-\u003enode, \u0026scavenger_list) overwrites the m_fp_list links\nand corrupts both lists.  CONFIG_DEBUG_LIST can report this on the\nshare-mode walk path.\n\n(2) Refcount race against m_fp_list walkers.  The scavenger qualifies\nan expired durable handle with atomic_read(\u0026fp-\u003erefcount) \u003e 1 and\nfp-\u003econn under global_ft.lock, removes fp from global_ft, then drops\nglobal_ft.lock before unlinking fp from m_fp_list and freeing it.\nDuring that gap fp is still linked on m_fp_list with f_state ==\nFP_INITED.  ksmbd_lookup_fd_inode() under m_lock read calls\nksmbd_fp_get() (atomic_inc_not_zero on refcount that is still 1) and\ntakes a live reference; the scavenger then unlinks and frees fp\nwhile the holder owns a reference, leading to UAF on the holder\u0027s\nsubsequent ksmbd_fd_put() and on any field reads performed by a\nconcurrent share-mode walker that iterates m_fp_list without taking\nksmbd_fp_get() (smb_check_perm_dleases-like paths).\n\nFix both:\n\n  * Stop reusing fp-\u003enode as a scavenger-private list node.  Remove\n    one expired handle from global_ft under global_ft.lock, take an\n    explicit transient reference, drop the lock, unlink fp-\u003enode\n    from m_fp_list under f_ci-\u003em_lock, then drop both the durable\n    lifetime and transient references with atomic_sub_and_test(2,\n    \u0026fp-\u003erefcount).  If the scavenger is the last putter the close\n    runs there; otherwise an in-flight holder that already raced\n    through the m_fp_list lookup owns the final close via its\n    ksmbd_fd_put() path.  The one-at-a-time disposal can rescan the\n    durable idr when multiple handles expire in the same pass, but\n    durable scavenging is a background expiration path and the final\n    full scan recomputes min_timeout before the next wait.\n\n  * Clear fp-\u003epersistent_id inside __ksmbd_remove_durable_fd() right\n    after idr_remove(), so a delayed final close from a holder that\n    snatched fp does not re-issue idr_remove() on a persistent id\n    that idr_alloc_cyclic() in ksmbd_open_durable_fd() may have\n    already handed out to a brand-new durable handle.\n\n  * Bypass the per-conn open_files_count decrement in\n    __put_fd_final() when fp is detached from any session table\n    (fp-\u003econn cleared by session_fd_check() at durable preserve --\n    paired with the volatile_id clear at unpublish, so checking\n    fp-\u003econn alone is sufficient).  The walker that owns the final\n    close runs from an unrelated work-\u003econn whose\n    stats.open_files_count never tracked this durable fp; without\n    this guard the holder would underflow that unrelated counter.\n\nThe two races are folded into one patch because patch (1) alone\ncleans up the corrupted list but leaves a deterministic UAF window\nfor m_fp_list walkers that the transient-reference and\npersistent_id discipline in (2) close; bisecting onto an\nintermediate state would land on a UAF that pre-patch chaos merely\nmade less reproducible.\n\nValidation:\n  * CONFIG_DEBUG_LIST coverage for the list_head reuse path.\n  * KASAN-enabled direct SMB2 durable-handle coverage that exercised\n    ksmbd_durable_scavenger() and non-NULL ksmbd_lookup_fd_inode()\n    returns while durable handles expired under concurrent rename\n    lookups, with no KASAN, UAF, list-corruption, ODEBUG, or WARNING\n    reports.\n---truncated---"
          }
        ],
        "id": "CVE-2026-64142",
        "lastModified": "2026-08-17T19:40:06.100",
        "metrics": {
          "cvssMetricV31": [
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "NETWORK",
                "availabilityImpact": "HIGH",
                "baseScore": 9.8,
                "baseSeverity": "CRITICAL",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "NONE",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 3.9,
              "impactScore": 5.9,
              "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
              "type": "Secondary"
            }
          ]
        },
        "published": "2026-07-19T16:17:56.103",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/1f8f3246d55f89350a1a67bdf3744b7241048e4e"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/3a436932eb397e909d0607d76a8325abd9d85a35"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/5da69a65b282d2276de22e5194ba0f88c836170c"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/95f072ef934ca00711d510676b8792cbf59a5aae"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/bf736184d063da1a552ffeff0481813599a182cc"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Analyzed",
        "weaknesses": [
          {
            "description": [
              {
                "lang": "en",
                "value": "CWE-416"
              }
            ],
            "source": "nvd@nist.gov",
            "type": "Primary"
          }
        ]
      }
    },
    "redhat_vex": {
      "aggregate_severity": "None",
      "current_release_date": "2026-07-21T08:04:36+00:00",
      "cve": "CVE-2026-64142",
      "id": "CVE-2026-64142",
      "initial_release_date": "2026-07-19T00:00:00+00:00",
      "product_status:known_not_affected": "275",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: ksmbd: close durable scavenger races against m_fp_list lookups",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-64142.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "critical",
      "current_release_date": "2026-07-21T12:58:56Z",
      "cve": "CVE-2026-64142",
      "id": "CVE-2026-64142",
      "initial_release_date": "2026-07-21T12:58:56Z",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-64142",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-64142.json",
      "version": "2"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…