CVE-2023-53597 (GCVE-0-2023-53597)
Vulnerability from cvelistv5
Published
2025-10-04 15:44
Modified
2026-08-05 09:15
Summary
In the Linux kernel, the following vulnerability has been resolved: cifs: fix mid leak during reconnection after timeout threshold When the number of responses with status of STATUS_IO_TIMEOUT exceeds a specified threshold (NUM_STATUS_IO_TIMEOUT), we reconnect the connection. But we do not return the mid, or the credits returned for the mid, or reduce the number of in-flight requests. This bug could result in the server->in_flight count to go bad, and also cause a leak in the mids. This change moves the check to a few lines below where the response is decrypted, even of the response is read from the transform header. This way, the code for returning the mids can be reused. Also, the cifs_reconnect was reconnecting just the transport connection before. In case of multi-channel, this may not be what we want to do after several timeouts. Changed that to reconnect the session and the tree too. Also renamed NUM_STATUS_IO_TIMEOUT to a more appropriate name MAX_STATUS_IO_TIMEOUT.
Impacted products
Vendor Product Version
Linux Linux Version: 8e670f77c4a55013db6d23b962f9bf6673a5e7b6
Version: 8e670f77c4a55013db6d23b962f9bf6673a5e7b6
Version: 8e670f77c4a55013db6d23b962f9bf6673a5e7b6
Version: 8e670f77c4a55013db6d23b962f9bf6673a5e7b6
Version: fa6d7a5853f93efb088aba36af12cb1944156411
Version: 5.9.5   
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "fs/smb/client/connect.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "df31d05f0678cdd0796ea19983a2b93edca18bb0",
              "status": "affected",
              "version": "8e670f77c4a55013db6d23b962f9bf6673a5e7b6",
              "versionType": "git"
            },
            {
              "lessThan": "c55901d381a22300c9922170e59704059f50977b",
              "status": "affected",
              "version": "8e670f77c4a55013db6d23b962f9bf6673a5e7b6",
              "versionType": "git"
            },
            {
              "lessThan": "57d25e9905c71133e201f6d06b56a3403d4ad433",
              "status": "affected",
              "version": "8e670f77c4a55013db6d23b962f9bf6673a5e7b6",
              "versionType": "git"
            },
            {
              "lessThan": "69cba9d3c1284e0838ae408830a02c4a063104bc",
              "status": "affected",
              "version": "8e670f77c4a55013db6d23b962f9bf6673a5e7b6",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "fa6d7a5853f93efb088aba36af12cb1944156411",
              "versionType": "git"
            },
            {
              "lessThan": "5.10",
              "status": "affected",
              "version": "5.9.5",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "fs/smb/client/connect.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.10"
            },
            {
              "lessThan": "5.10",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.150",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.42",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.4.*",
              "status": "unaffected",
              "version": "6.4.7",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.5",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.150",
                  "versionStartIncluding": "5.10",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.42",
                  "versionStartIncluding": "5.10",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.4.7",
                  "versionStartIncluding": "5.10",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.5",
                  "versionStartIncluding": "5.10",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "5.9.5",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ncifs: fix mid leak during reconnection after timeout threshold\n\nWhen the number of responses with status of STATUS_IO_TIMEOUT\nexceeds a specified threshold (NUM_STATUS_IO_TIMEOUT), we reconnect\nthe connection. But we do not return the mid, or the credits\nreturned for the mid, or reduce the number of in-flight requests.\n\nThis bug could result in the server-\u003ein_flight count to go bad,\nand also cause a leak in the mids.\n\nThis change moves the check to a few lines below where the\nresponse is decrypted, even of the response is read from the\ntransform header. This way, the code for returning the mids\ncan be reused.\n\nAlso, the cifs_reconnect was reconnecting just the transport\nconnection before. In case of multi-channel, this may not be\nwhat we want to do after several timeouts. Changed that to\nreconnect the session and the tree too.\n\nAlso renamed NUM_STATUS_IO_TIMEOUT to a more appropriate name\nMAX_STATUS_IO_TIMEOUT."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.5,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:N - The vulnerable code is the CIFS/SMB client demultiplex thread parsing responses received from a remote SMB server over TCP; a malicious, compromised, or MITM-positioned server triggers it purely by the status field it puts in its replies. No local access to the victim is needed.\nAC:L - The server simply returns STATUS_IO_TIMEOUT to six consecutive requests, which deterministically drives the `num_io_timeout \u003e NUM_STATUS_IO_TIMEOUT` path; there is no race, no memory-layout dependency, and no condition outside the attacker\u0027s control.\nPR:N - The attacker is the remote peer (or an on-path attacker on an unsigned connection) and holds no privileges whatsoever on the victim client system. Response status codes are attacker-chosen with no authorization gate on the client side.\nUI:N - Exploitation happens on an already-established mount by replying to requests the client issues on its own (writeback, echo, reads), and the client auto-reconnects after each reconnect cycle, so no victim action is required at exploit time.\nS:U - The leaked mids, credits, and stalled I/O are all confined to the kernel of the client host running the cifs module; no security boundary such as a VM or IOMMU domain is crossed.\nC:N - This is a reference/resource leak \u2014 an object is over-referenced and never freed. There is no out-of-bounds read, use-after-free, or uninitialized data path, so no information is disclosed to the attacker.\nI:N - No memory is corrupted and no attacker-controlled write occurs; stalled writes leave pages permanently under writeback rather than silently reporting success, so no data is modified or falsified.\nA:H - The bug is repeatable without limit, producing an unbounded kernel memory leak plus permanent `server-\u003ein_flight` inflation and credit loss that makes `wait_for_free_credits()` block indefinitely, and skipped read/write callbacks leave pages locked or under writeback forever \u2014 yielding unkillable D-state tasks, a hung/unmountable filesystem, and eventual OOM."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T09:15:00.757Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/df31d05f0678cdd0796ea19983a2b93edca18bb0"
        },
        {
          "url": "https://git.kernel.org/stable/c/c55901d381a22300c9922170e59704059f50977b"
        },
        {
          "url": "https://git.kernel.org/stable/c/57d25e9905c71133e201f6d06b56a3403d4ad433"
        },
        {
          "url": "https://git.kernel.org/stable/c/69cba9d3c1284e0838ae408830a02c4a063104bc"
        }
      ],
      "title": "cifs: fix mid leak during reconnection after timeout threshold",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2023-53597",
    "datePublished": "2025-10-04T15:44:09.616Z",
    "dateReserved": "2025-10-04T15:40:38.479Z",
    "dateUpdated": "2026-08-05T09:15:00.757Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…