{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2024-56632","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2024-12-27T15:00:39.838Z","datePublished":"2024-12-27T15:02:30.396Z","dateUpdated":"2026-08-05T11:45:35.735Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-05T11:45:35.735Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nnvme-tcp: fix the memleak while create new ctrl failed\n\nNow while we create new ctrl failed, we have not free the\ntagset occupied by admin_q, here try to fix it."}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","baseScore":7.5,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:N - The leak path is selected entirely by data received from the remote NVMe-over-TCP target — `icdoff` and `sgls` are copied verbatim from the peer's Identify Controller response, and I/O-queue connect failures are equally peer-controlled. A rogue or MITM'd target on the network triggers the bug in the host kernel's nvme-tcp initiator.\nAC:L - A malicious target simply returns a non-zero `icdoff` or clears the SGL support bits, hitting `goto destroy_admin` on every single connection attempt with 100% reliability. No race, no memory-layout dependency, no timing window.\nPR:N - NVMe/TCP is unauthenticated by default (no TLS or DH-HMAC-CHAP unless explicitly configured), so the attacking target holds no credentials on the victim host. The failure is forced during Identify processing, before any host-side trust decision about the target.\nUI:N - In standard NVMe-oF deployments the nvme-cli discovery-log-change udev rule / nvmf-autoconnect service re-runs `nvme connect-all` automatically, so a malicious discovery controller can drive an unbounded stream of controller creations by advertising many subsystems and re-issuing AENs, with no administrator action per attempt.\nS:U - The leaked tag set, request queues and the resulting exhaustion are all confined to the kernel of the affected host; no privilege or virtualization boundary is crossed.\nC:N - The failure path leaks allocations but does not copy any kernel data toward the attacker or expose freed contents to the peer; no attacker-readable information disclosure results.\nI:N - Nothing attacker-controlled is written into kernel structures by the defect itself — the missing `nvme_remove_admin_tag_set()` only omits frees, leaving no write primitive to the remote peer.\nA:H - The leak is unbounded and remotely repeatable, so a hostile target can drive the host into kernel memory exhaustion and OOM; additionally the leaked hctxs stay registered on the blk-mq CPU-hotplug lists while their `tag_set` lives in the freed `nvme_tcp_ctrl`, so `blk_mq_map_queue_type()` dereferences freed memory on the next CPU offline/online and oopses the machine."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/nvme/host/tcp.c"],"versions":[{"version":"fd1418de10b9ca03d78404cf00a95138689ea369","lessThan":"ceff9ac13a2478afddce85414d404e6aff6425f6","status":"affected","versionType":"git"},{"version":"fd1418de10b9ca03d78404cf00a95138689ea369","lessThan":"fec55c29e54d3ca6fe9d7d7d9266098b4514fd34","status":"affected","versionType":"git"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/nvme/host/tcp.c"],"versions":[{"version":"6.7","status":"affected"},{"version":"0","lessThan":"6.7","status":"unaffected","versionType":"semver"},{"version":"6.12.5","lessThanOrEqual":"6.12.*","status":"unaffected","versionType":"semver"},{"version":"6.13","lessThanOrEqual":"*","status":"unaffected","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.7","versionEndExcluding":"6.12.5"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.7","versionEndExcluding":"6.13"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/ceff9ac13a2478afddce85414d404e6aff6425f6"},{"url":"https://git.kernel.org/stable/c/fec55c29e54d3ca6fe9d7d7d9266098b4514fd34"}],"title":"nvme-tcp: fix the memleak while create new ctrl failed","x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"metrics":[{"cvssV3_1":{"scope":"UNCHANGED","version":"3.1","baseScore":5.5,"attackVector":"LOCAL","baseSeverity":"MEDIUM","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","integrityImpact":"NONE","userInteraction":"NONE","attackComplexity":"LOW","availabilityImpact":"HIGH","privilegesRequired":"LOW","confidentialityImpact":"NONE"}},{"other":{"type":"ssvc","content":{"id":"CVE-2024-56632","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"version":"2.0.3","timestamp":"2025-10-01T20:00:42.380071Z"}}}],"problemTypes":[{"descriptions":[{"lang":"en","type":"CWE","cweId":"CWE-401","description":"CWE-401 Missing Release of Memory after Effective Lifetime"}]}],"title":"CISA ADP Vulnrichment","providerMetadata":{"orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP","dateUpdated":"2025-10-01T20:07:12.162Z"}}]}}