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

CVE-2025-38264 (GCVE-0-2025-38264)

Vulnerability from cvelistv5 – Published: 2025-07-09 10:42 – Updated: 2026-08-05 12:00
VLAI
Title
nvme-tcp: sanitize request list handling
Summary
In the Linux kernel, the following vulnerability has been resolved: nvme-tcp: sanitize request list handling Validate the request in nvme_tcp_handle_r2t() to ensure it's not part of any list, otherwise a malicious R2T PDU might inject a loop in request list processing.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 3f2304f8c6d6ed97849057bd16fee99e434ca796 , < 78a4adcd3fedb0728436e8094848ebf4c6bae006 (git)
Affected: 3f2304f8c6d6ed97849057bd16fee99e434ca796 , < f054ea62598197714a6ca7b3b387a027308f8b13 (git)
Affected: 3f2304f8c6d6ed97849057bd16fee99e434ca796 , < 0bf04c874fcb1ae46a863034296e4b33d8fbd66c (git)
guessed Create a notification for this product.
Linux Linux Affected: 5.0
Unaffected: 0 , < 5.0 (semver)
Unaffected: 6.12.36 , ≤ 6.12.* (semver)
Unaffected: 6.15.5 , ≤ 6.15.* (semver)
Unaffected: 6.16 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/nvme/host/tcp.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "78a4adcd3fedb0728436e8094848ebf4c6bae006",
              "status": "affected",
              "version": "3f2304f8c6d6ed97849057bd16fee99e434ca796",
              "versionType": "git"
            },
            {
              "lessThan": "f054ea62598197714a6ca7b3b387a027308f8b13",
              "status": "affected",
              "version": "3f2304f8c6d6ed97849057bd16fee99e434ca796",
              "versionType": "git"
            },
            {
              "lessThan": "0bf04c874fcb1ae46a863034296e4b33d8fbd66c",
              "status": "affected",
              "version": "3f2304f8c6d6ed97849057bd16fee99e434ca796",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/nvme/host/tcp.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.0"
            },
            {
              "lessThan": "5.0",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.36",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.15.*",
              "status": "unaffected",
              "version": "6.15.5",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.16",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.36",
                  "versionStartIncluding": "5.0",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.15.5",
                  "versionStartIncluding": "5.0",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.16",
                  "versionStartIncluding": "5.0",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnvme-tcp: sanitize request list handling\n\nValidate the request in nvme_tcp_handle_r2t() to ensure it\u0027s not part of\nany list, otherwise a malicious R2T PDU might inject a loop in request\nlist processing."
        }
      ],
      "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 vulnerable code is the NVMe-over-TCP host driver\u0027s PDU receive path, parsing an R2T PDU sent by a remote NVMe-oF target over TCP (port 4420); the malicious input arrives purely over the network from a compromised/rogue target or an on-path attacker.\nAC:L - The target fully controls PDU content and timing \u2014 placing two R2T PDUs for the same command_id in a single TCP segment guarantees both are processed inside one nvme_tcp_recv_skb() pass with no send-path progress between them, creating the llist cycle deterministically with no race to win and no memory-layout dependency.\nPR:N - NVMe/TCP requires no authentication by default (TLS and DH-HMAC-CHAP are optional, off in stock configs), so the remote peer needs zero privileges or credentials on the victim host \u2014 it simply answers I/O it is already being sent.\nUI:N - No victim action is required; once the host is connected to the target, ordinary filesystem/block I/O generates the in-flight commands and the malicious target triggers the bug on its own by replying with duplicate R2T PDUs.\nS:U - The corruption and the resulting hang are confined to the host kernel\u0027s own memory and scheduling authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - Beyond the list corruption, duplicate queueing lets the RX path reset req-\u003estate/offset/pdu_len while the TX path is consuming the request, desynchronizing req-\u003eiter so nvme_tcp_req_cur_page() reads past the bvec array and sock_sendmsg() splices unintended kernel pages directly to the attacker-controlled socket.\nI:H - Attacker-controlled input produces kernel linked-list pointer corruption (double llist_add plus repeated list_add of an already-linked entry into send_list) and lets an in-flight request\u0027s PDU header, ttag, and iterator state be rewritten mid-transfer, which is memory/state corruption leverageable for further control over kernel structures.\nA:H - The injected cycle makes nvme_tcp_process_req_list() spin forever in the nvme_tcp_wq kworker while holding queue-\u003esend_mutex with no cond_resched(), producing a CPU soft lockup, RCU stalls, and a permanently wedged storage queue \u2014 a deterministic, unauthenticated remote kernel hang."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T12:00:51.571Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/78a4adcd3fedb0728436e8094848ebf4c6bae006"
        },
        {
          "url": "https://git.kernel.org/stable/c/f054ea62598197714a6ca7b3b387a027308f8b13"
        },
        {
          "url": "https://git.kernel.org/stable/c/0bf04c874fcb1ae46a863034296e4b33d8fbd66c"
        }
      ],
      "title": "nvme-tcp: sanitize request list handling",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2025-38264",
    "datePublished": "2025-07-09T10:42:38.602Z",
    "dateReserved": "2025-04-16T04:51:23.997Z",
    "dateUpdated": "2026-08-05T12:00:51.571Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2025-38264",
      "date": "2026-09-16",
      "epss": "0.00292",
      "percentile": "0.21846"
    },
    "microsoft_vex": {
      "current_release_date": "2026-09-09T01:45:43.000Z",
      "cve": "CVE-2025-38264",
      "id": "msrc_CVE-2025-38264",
      "initial_release_date": "2025-09-03T23:24:11.000Z",
      "product_status:known_affected": "21",
      "product_status:under_investigation": "3",
      "source": "Microsoft CSAF VEX",
      "status": "final",
      "title": "nvme-tcp: sanitize request list handling",
      "url": "https://msrc.microsoft.com/csaf/vex/2025/msrc_cve-2025-38264.json",
      "version": "21"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2025-38264\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-07-09T11:15:28.810\",\"lastModified\":\"2026-07-30T06:23:05.177\",\"vulnStatus\":\"Modified\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nnvme-tcp: sanitize request list handling\\n\\nValidate the request in nvme_tcp_handle_r2t() to ensure it\u0027s not part of\\nany list, otherwise a malicious R2T PDU might inject a loop in request\\nlist processing.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: nvme-tcp: desinfectar el manejo de la lista de solicitudes Valide la solicitud en nvme_tcp_handle_r2t() para asegurarse de que no sea parte de ninguna lista; de lo contrario, una PDU R2T maliciosa podr\u00eda inyectar un bucle en el procesamiento de la lista de solicitudes.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/nvme/host/tcp.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"3f2304f8c6d6ed97849057bd16fee99e434ca796\",\"lessThan\":\"78a4adcd3fedb0728436e8094848ebf4c6bae006\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"3f2304f8c6d6ed97849057bd16fee99e434ca796\",\"lessThan\":\"f054ea62598197714a6ca7b3b387a027308f8b13\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"3f2304f8c6d6ed97849057bd16fee99e434ca796\",\"lessThan\":\"0bf04c874fcb1ae46a863034296e4b33d8fbd66c\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/nvme/host/tcp.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"5.0\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"5.0\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.12.36\",\"lessThanOrEqual\":\"6.12.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.15.5\",\"lessThanOrEqual\":\"6.15.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.16\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":9.8,\"baseSeverity\":\"CRITICAL\",\"attackVector\":\"NETWORK\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"NONE\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":3.9,\"impactScore\":5.9},{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H\",\"baseScore\":5.5,\"baseSeverity\":\"MEDIUM\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"NONE\",\"integrityImpact\":\"NONE\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":3.6}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"NVD-CWE-noinfo\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.0\",\"versionEndExcluding\":\"6.12.36\",\"matchCriteriaId\":\"A758CD7A-5A7A-490D-922C-0C9DC4947E5E\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.13\",\"versionEndExcluding\":\"6.15.5\",\"matchCriteriaId\":\"0CC768E2-3BBC-4A6E-9C2F-ECB27A703C2D\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/0bf04c874fcb1ae46a863034296e4b33d8fbd66c\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/78a4adcd3fedb0728436e8094848ebf4c6bae006\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/f054ea62598197714a6ca7b3b387a027308f8b13\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]}]}}",
    "redhat_vex": {
      "aggregate_severity": "Important",
      "current_release_date": "2026-07-30T08:52:00+00:00",
      "cve": "CVE-2025-38264",
      "id": "CVE-2025-38264",
      "initial_release_date": "2025-07-09T00:00:00+00:00",
      "product_status:fixed": "307",
      "product_status:known_not_affected": "198",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: nvme-tcp: sanitize request list handling",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2025/cve-2025-38264.json",
      "version": "3"
    }
  }
}



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…