← Back to CVE Explorer

CVE-2026-99276

Full vulnerability record from the local CVENow database.

Description

In the Linux kernel, the following vulnerability has been resolved: ksmbd: defer connection scavenging while session locks are busy The expiration worker holds conn_list_lock for reading while checking for authenticated sessions. Without this change, the check can wait for conn->session_lock or sessions_table_lock. In destroy_previous_session(), the status updates after ksmbd_conn_wait_idle_sess() run with both session locks held for writing. Both the KSMBD_SESS_GOOD error path and the KSMBD_SESS_NEED_SETUP success path call ksmbd_all_conn_set_status(), which takes conn_list_lock for reading. A writer queued on conn_list_lock can block these new read acquisitions. The worker then waits for a session lock held by destroy_previous_session(), which waits behind the writer. The writer cannot proceed until the worker releases conn_list_lock. Try both session locks instead of waiting in the scavenging check. Keep the connection when either lock is busy and let the periodic worker retry later.

Severity
Not scored
CVSS score
Not available
Vulnerability status
Received
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2026-11-07 14:17:02.967000
Last modified
2026-11-07 14:17:02.967000
View original CVE JSON
{
  "id": "CVE-2026-99276",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2026-11-07T14:17:02.967",
  "lastModified": "2026-11-07T14:17:02.967",
  "vulnStatus": "Received",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nksmbd: defer connection scavenging while session locks are busy\n\nThe expiration worker holds conn_list_lock for reading while checking\nfor authenticated sessions. Without this change, the check can wait for\nconn->session_lock or sessions_table_lock.\n\nIn destroy_previous_session(), the status updates after\nksmbd_conn_wait_idle_sess() run with both session locks held for\nwriting. Both the KSMBD_SESS_GOOD error path and the\nKSMBD_SESS_NEED_SETUP success path call ksmbd_all_conn_set_status(),\nwhich takes conn_list_lock for reading.\n\nA writer queued on conn_list_lock can block these new read acquisitions.\nThe worker then waits for a session lock held by\ndestroy_previous_session(), which waits behind the writer. The writer\ncannot proceed until the worker releases conn_list_lock.\n\nTry both session locks instead of waiting in the scavenging check. Keep\nthe connection when either lock is busy and let the periodic worker\nretry later."
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "fs/smb/server/mgmt/user_session.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "d7fd1f98607f2cd358e583f9548bdf0173090a86",
              "lessThan": "4e4e8b38994a0b0fc23f00ca6698b469a41abe70",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "d7fd1f98607f2cd358e583f9548bdf0173090a86",
              "lessThan": "b4bae7af1154089be87c7475218264fcbfd16d10",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "c99ea7855124ca1428a1e59c2b4590aaef34eacf",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "7.2.8",
              "lessThan": "7.3",
              "versionType": "semver",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "fs/smb/server/mgmt/user_session.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "7.3",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "7.3",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.3.2",
              "lessThanOrEqual": "7.3.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.4-rc1",
              "lessThanOrEqual": "*",
              "versionType": "original_commit_for_fix",
              "status": "unaffected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {},
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/4e4e8b38994a0b0fc23f00ca6698b469a41abe70",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/b4bae7af1154089be87c7475218264fcbfd16d10",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ]
}