Skip to content
Heist/ feed
Back to feed
UnratedFix available

ksmbd: fix infinite loop caused by next_smb2_rcv_hdr_off reset in error paths

Type: advisorySources: OSV

In the Linux kernel, the following vulnerability has been resolved: ksmbd: fix infinite loop caused by next_smb2_rcv_hdr_off reset in error paths The problem occurs when a signed request fails smb2 signature verification check. In __process_request(), if check_sign_req() returns an error, set_smb2_rsp_status(work, STATUS_ACCESS_DENIED) is called. set_smb2_rsp_status() set work->next_smb2_rcv_hdr_off as zero. By resetting next_smb2_rcv_hdr_off to zero, the pointer to the next command in the chain is lost. Consequently, is_chained_smb2_message() continues to point to the same request header instead of advancing. If the header's NextCommand field is non-zero, the function returns true, causing __handle_ksmbd_work() to repeatedly process the same failed request in an infinite loop. This results in the kernel log being flooded with "bad smb2 signature" messages and high CPU usage. This patch fixes the issue by changing the return value from SERVER_HANDLER_CONTINUE to SERVER_HANDLER_ABORT. This ensures that the processing loop terminates immediately rather than attempting to continue from an invalidated offset.

Products
Kernel
Affected versions
Not specified
Fixed versions
5.15.203, 6.1.164, 6.12.72, 6.18.11, 6.19.1, 6.6.125
CVEs
CVE-2026-23220
Confirmed fixed CVEs
Not specified
Updated in this feed
7 Nov 2026, 14:27 UTC · Revision 1

Source evidence

ksmbd: fix infinite loop caused by next_smb2_rcv_hdr_off reset in error paths

core-osv · Original source

Published 18 Feb 2026, 14:53 UTC

In the Linux kernel, the following vulnerability has been resolved: ksmbd: fix infinite loop caused by next_smb2_rcv_hdr_off reset in error paths The problem occurs when a signed request fails smb2 signature verification check. In __process_request(), if check_sign_req() returns an error, set_smb2_rsp_status(work, STATUS_ACCESS_DENIED) is called. set_smb2_rsp_status() set work->next_smb2_rcv_hdr_off as zero. By resetting next_smb2_rcv_hdr_off to zero, the pointer to the next command in the chain is lost. Consequently, is_chained_smb2_message() continues to point to the same request header instead of advancing. If the header's NextCommand field is non-zero, the function returns true, causing __handle_ksmbd_work() to repeatedly process the same failed request in an infinite loop. This results in the kernel log being flooded with "bad smb2 signature" messages and high CPU usage. This patch fixes the issue by changing the return value from SERVER_HANDLER_CONTINUE to SERVER_HANDLER_ABORT. This ensures that the processing loop terminates immediately rather than attempting to continue from an invalidated offset.

osv:CVE-2026-23220

Kernel

Fixed versions: 5.15.203, 6.1.164, 6.6.125, 6.12.72, 6.18.11, 6.19.1

Complete source record
{
  "id": "bdc276b6adf516875c8463f0ab79c61b29275dcfb06b36b54d231ce91e8e6b86",
  "url": "https://osv.dev/vulnerability/CVE-2026-23220",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "ksmbd: fix infinite loop caused by next_smb2_rcv_hdr_off reset in error paths",
    "summary": "In the Linux kernel, the following vulnerability has been resolved: ksmbd: fix infinite loop caused by next_smb2_rcv_hdr_off reset in error paths The problem occurs when a signed request fails smb2 signature verification check. In __process_request(), if check_sign_req() returns an error, set_smb2_rsp_status(work, STATUS_ACCESS_DENIED) is called. set_smb2_rsp_status() set work->next_smb2_rcv_hdr_off as zero. By resetting next_smb2_rcv_hdr_off to zero, the pointer to the next command in the chain is lost. Consequently, is_chained_smb2_message() continues to point to the same request header instead of advancing. If the header's NextCommand field is non-zero, the function returns true, causing __handle_ksmbd_work() to repeatedly process the same failed request in an infinite loop. This results in the kernel log being flooded with \"bad smb2 signature\" messages and high CPU usage. This patch fixes the issue by changing the return value from SERVER_HANDLER_CONTINUE to SERVER_HANDLER_ABORT. This ensures that the processing loop terminates immediately rather than attempting to continue from an invalidated offset.",
    "evidence": "osv:CVE-2026-23220",
    "products": [
      {
        "name": {
          "value": "Kernel",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "5.15.203",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.1.164",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.6.125",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.12.72",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.18.11",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.19.1",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "unknown",
    "structured": {
      "id": "CVE-2026-23220",
      "aliases": [
        "CVE-2026-23220"
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "4b9b7ea1ffb1e34f01fa5726d0c184931b9ba565"
                },
                {
                  "fixed": "544adb0a6658ea1bff4064723761dbf05f95b1e2"
                }
              ]
            },
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "943cebf9ea3415ddefcd670d24d8883e97ba3d60"
                },
                {
                  "fixed": "fb3b66bd72deb5543addaefa67963b34fb163a7b"
                }
              ]
            },
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "be0f89d4419dc5413a1cf06db3671c9949be0d52"
                },
                {
                  "fixed": "5accdc5b7f28a81bbc5880ac0b8886e60c86e8c8"
                },
                {
                  "fixed": "f7b1c2f5642bbd60b1beef1f3298cbac81eb232c"
                },
                {
                  "fixed": "71b5e7c528315ca360a1825a4ad2f8ae48c5dc16"
                },
                {
                  "fixed": "9135e791ec2709bcf0cda0335535c74762489498"
                },
                {
                  "fixed": "010eb01ce23b34b50531448b0da391c7f05a72af"
                }
              ]
            },
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "5.15.145"
                },
                {
                  "fixed": "5.15.203"
                }
              ]
            },
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "6.1.71"
                },
                {
                  "fixed": "6.1.164"
                }
              ]
            }
          ],
          "versions": [
            "v5.15.202",
            "v5.15.201",
            "v5.15.200",
            "v5.15.199",
            "v5.15.198",
            "v5.15.197",
            "v5.15.196",
            "v5.15.195",
            "v5.15.194",
            "v5.15.193",
            "v5.15.192",
            "v5.15.191",
            "v5.15.190",
            "v5.15.189",
            "v5.15.188",
            "v5.15.187",
            "v5.15.186",
            "v5.15.185",
            "v5.15.184",
            "v5.15.183",
            "v5.15.182",
            "v5.15.181",
            "v5.15.180",
            "v5.15.179",
            "v5.15.178",
            "v5.15.177",
            "v5.15.176",
            "v5.15.175",
            "v5.15.174",
            "v5.15.173",
            "v5.15.172",
            "v5.15.171",
            "v5.15.170",
            "v5.15.169",
            "v5.15.168",
            "v5.15.167",
            "v5.15.166",
            "v5.15.165",
            "v5.15.164",
            "v5.15.163",
            "v5.15.162",
            "v5.15.161",
            "v5.15.160",
            "v5.15.159",
            "v5.15.158",
            "v5.15.157",
            "v5.15.156",
            "v5.15.155",
            "v5.15.154",
            "v5.15.153",
            "v5.15.152",
            "v5.15.151",
            "v5.15.150",
            "v5.15.149",
            "v5.15.148",
            "v5.15.147",
            "v5.15.146",
            "v5.15.145",
            "v6.1.163",
            "v6.1.162",
            "v6.1.161",
            "v6.1.160",
            "v6.1.159",
            "v6.1.158",
            "v6.1.157",
            "v6.1.156",
            "v6.1.155",
            "v6.1.154",
            "v6.1.153",
            "v6.1.152",
            "v6.1.151",
            "v6.1.150",
            "v6.1.149",
            "v6.1.148",
            "v6.1.147",
            "v6.1.146",
            "v6.1.145",
            "v6.1.144",
            "v6.1.143",
            "v6.1.142",
            "v6.1.141",
            "v6.1.140",
            "v6.1.139",
            "v6.1.138",
            "v6.1.137",
            "v6.1.136",
            "v6.1.135",
            "v6.1.134",
            "v6.1.133",
            "v6.1.132",
            "v6.1.131",
            "v6.1.130",
            "v6.1.129",
            "v6.1.128",
            "v6.1.127",
            "v6.1.126",
            "v6.1.125",
            "v6.1.124",
            "v6.1.123",
            "v6.1.122",
            "v6.1.121",
            "v6.1.120",
            "v6.1.119",
            "v6.1.118",
            "v6.1.117",
            "v6.1.116",
            "v6.1.115",
            "v6.1.114",
            "v6.1.113",
            "v6.1.112",
            "v6.1.111",
            "v6.1.110",
            "v6.1.109",
            "v6.1.108",
            "v6.1.107",
            "v6.1.106",
            "v6.1.105",
            "v6.1.104",
            "v6.1.103",
            "v6.1.102",
            "v6.1.101",
            "v6.1.100",
            "v6.1.99",
            "v6.1.98",
            "v6.1.97",
            "v6.1.96",
            "v6.1.95",
            "v6.1.94",
            "v6.1.93",
            "v6.1.92",
            "v6.1.91",
            "v6.1.90",
            "v6.1.89",
            "v6.1.88",
            "v6.1.87",
            "v6.1.86",
            "v6.1.85",
            "v6.1.84",
            "v6.1.83",
            "v6.1.82",
            "v6.1.81",
            "v6.1.80",
            "v6.1.79",
            "v6.1.78",
            "v6.1.77",
            "v6.1.76",
            "v6.1.75",
            "v6.1.74",
            "v6.1.73",
            "v6.1.72",
            "v6.1.71"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-23220.json"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "5.15.203"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.16.0"
                },
                {
                  "fixed": "6.1.164"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.2.0"
                },
                {
                  "fixed": "6.6.125"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.6.0"
                },
                {
                  "fixed": "6.12.72"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.7.0"
                },
                {
                  "fixed": "6.18.11"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.13.0"
                },
                {
                  "fixed": "6.19.1"
                }
              ]
            }
          ],
          "package": {
            "name": "Kernel",
            "ecosystem": "Linux"
          },
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-23220.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:51.009226798Z",
      "provider": "osv",
      "references": [
        "https://cert-portal.siemens.com/productcert/html/ssa-253495.html",
        "https://git.kernel.org/stable/c/010eb01ce23b34b50531448b0da391c7f05a72af",
        "https://git.kernel.org/stable/c/544adb0a6658ea1bff4064723761dbf05f95b1e2",
        "https://git.kernel.org/stable/c/5accdc5b7f28a81bbc5880ac0b8886e60c86e8c8",
        "https://git.kernel.org/stable/c/71b5e7c528315ca360a1825a4ad2f8ae48c5dc16",
        "https://git.kernel.org/stable/c/9135e791ec2709bcf0cda0335535c74762489498",
        "https://git.kernel.org/stable/c/f7b1c2f5642bbd60b1beef1f3298cbac81eb232c",
        "https://git.kernel.org/stable/c/fb3b66bd72deb5543addaefa67963b34fb163a7b",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/23xxx/CVE-2026-23220.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-23220",
        "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
      ],
      "provider_metadata": {
        "cna_assigner": "Linux",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/23xxx/CVE-2026-23220.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-23220",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": null
  },
  "source_id": "core-osv",
  "document_id": 519625,
  "published_at": "2026-02-18T14:53:23.376+00:00"
}