{ "dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": { "cveId": "CVE-2024-56637", "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "state": "PUBLISHED", "assignerShortName": "Linux", "dateReserved": "2024-12-27T15:00:39.839Z", "datePublished": "2024-12-27T15:02:39.876Z", "dateUpdated": "2026-08-05T11:45:37.928Z" }, "containers": { "cna": { "providerMetadata": { "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux", "dateUpdated": "2026-08-05T11:45:37.928Z" }, "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: ipset: Hold module reference while requesting a module\n\nUser space may unload ip_set.ko while it is itself requesting a set type\nbackend module, leading to a kernel crash. The race condition may be\nprovoked by inserting an mdelay() right after the nfnl_unlock() call." } ], "metrics": [ { "cvssV3_1": { "version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H", "baseScore": 7.3, "baseSeverity": "HIGH" }, "scenarios": [ { "lang": "en", "value": "AV:L - The vulnerable path is reached through a NETLINK_NETFILTER socket (nfnetlink NFNL_SUBSYS_IPSET commands IPSET_CMD_CREATE/IPSET_CMD_TYPE), which requires local system access. Per kernel scoring guidance, netfilter/netlink-reachable bugs are Local.\nAC:L - The attacker fully controls their side of the race and can hold the vulnerable window open near-continuously, since each request_module() call for a nonexistent type forks and execs the modprobe usermode helper (milliseconds) with the nfnl mutex dropped, while the rest of the path takes microseconds. No memory layout or timing condition beyond attacker influence is needed to win once the unload occurs.\nPR:L - Reaching load_settype() only requires CAP_NET_ADMIN checked via netlink_net_capable() against the socket's net->user_ns, so any unprivileged user obtains it with `unshare -Urn` and drives the ipset netlink commands from an unprivileged namespace. Basic local user access is therefore sufficient to trigger the vulnerable code path.\nUI:R - The freeing side of the race is `rmmod ip_set`, and delete_module() gates on capable(CAP_SYS_MODULE) in the initial user namespace, which cannot be obtained through user namespaces. A privileged party other than the attacker — an administrator or firewall/container teardown automation that unloads ipset modules — must perform that action for the window to be hit.\nS:U - The use-after-free occurs in kernel module text and data and its impact is confined to the kernel's own security authority. No hypervisor, IOMMU, or other security-boundary crossing is involved, matching standard kernel privilege-escalation scoring.\nC:H - This is a use-after-free on freed vmalloc'd module memory, and the surviving execution continues to read freed module data structures (ip_set_type_list, ip_set_type_mutex) that can be repopulated by attacker-influenced allocations. Per kernel guidance, a UAF yields High confidentiality impact because it can be leveraged into an arbitrary kernel read primitive.\nI:H - Execution resumes at a stale return address inside the freed executable module mapping, so reclaiming that module_alloc region — via a subsequent modprobe, BPF JIT, or other vmalloc consumer — redirects kernel control flow to attacker-influenced content. This is a control-flow-hijack-capable use-after-free, giving High integrity impact.\nA:H - The commit message states the race leads directly to a kernel crash, reproducible by inserting an mdelay() after nfnl_unlock(). Executing from unmapped module text reliably oopses or panics the kernel, which is High availability impact." } ] } ], "affected": [ { "product": "Linux", "vendor": "Linux", "defaultStatus": "unaffected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "net/netfilter/ipset/ip_set_core.c" ], "versions": [ { "version": "a7b4f989a629493bb4ec4a354def784d440b32c4", "lessThan": "e5e2d3024753fdaca818b822e3827614bacbdccf", "status": "affected", "versionType": "git" }, { "version": "a7b4f989a629493bb4ec4a354def784d440b32c4", "lessThan": "6099b5d3e37145484fac4b8b4070c3f1abfb3519", "status": "affected", "versionType": "git" }, { "version": "a7b4f989a629493bb4ec4a354def784d440b32c4", "lessThan": "0e67805e805c1f3edd6f43adbe08ea14b552694b", "status": "affected", "versionType": "git" }, { "version": "a7b4f989a629493bb4ec4a354def784d440b32c4", "lessThan": "5bae60a933ba5d16eed55c6b279be51bcbbc79b0", "status": "affected", "versionType": "git" }, { "version": "a7b4f989a629493bb4ec4a354def784d440b32c4", "lessThan": "90bf312a6b6b3d6012137f6776a4052ee85e0340", "status": "affected", "versionType": "git" }, { "version": "a7b4f989a629493bb4ec4a354def784d440b32c4", "lessThan": "ba5e070f36682d07ca7ad2a953e6c9d96be19dca", "status": "affected", "versionType": "git" }, { "version": "a7b4f989a629493bb4ec4a354def784d440b32c4", "lessThan": "456f010bfaefde84d3390c755eedb1b0a5857c3c", "status": "affected", "versionType": "git" } ] }, { "product": "Linux", "vendor": "Linux", "defaultStatus": "affected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "net/netfilter/ipset/ip_set_core.c" ], "versions": [ { "version": "2.6.39", "status": "affected" }, { "version": "0", "lessThan": "2.6.39", "status": "unaffected", "versionType": "semver" }, { "version": "5.4.287", "lessThanOrEqual": "5.4.*", "status": "unaffected", "versionType": "semver" }, { "version": "5.10.231", "lessThanOrEqual": "5.10.*", "status": "unaffected", "versionType": "semver" }, { "version": "5.15.174", "lessThanOrEqual": "5.15.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.1.120", "lessThanOrEqual": "6.1.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.6.66", "lessThanOrEqual": "6.6.*", "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": "2.6.39", "versionEndExcluding": "5.4.287" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "2.6.39", "versionEndExcluding": "5.10.231" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "2.6.39", "versionEndExcluding": "5.15.174" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "2.6.39", "versionEndExcluding": "6.1.120" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "2.6.39", "versionEndExcluding": "6.6.66" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "2.6.39", "versionEndExcluding": "6.12.5" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "2.6.39", "versionEndExcluding": "6.13" } ] } ] } ], "references": [ { "url": "https://git.kernel.org/stable/c/e5e2d3024753fdaca818b822e3827614bacbdccf" }, { "url": "https://git.kernel.org/stable/c/6099b5d3e37145484fac4b8b4070c3f1abfb3519" }, { "url": "https://git.kernel.org/stable/c/0e67805e805c1f3edd6f43adbe08ea14b552694b" }, { "url": "https://git.kernel.org/stable/c/5bae60a933ba5d16eed55c6b279be51bcbbc79b0" }, { "url": "https://git.kernel.org/stable/c/90bf312a6b6b3d6012137f6776a4052ee85e0340" }, { "url": "https://git.kernel.org/stable/c/ba5e070f36682d07ca7ad2a953e6c9d96be19dca" }, { "url": "https://git.kernel.org/stable/c/456f010bfaefde84d3390c755eedb1b0a5857c3c" } ], "title": "netfilter: ipset: Hold module reference while requesting a module", "x_generator": { "engine": "bippy-1.2.0" } }, "adp": [ { "title": "CVE Program Container", "references": [ { "url": "https://lists.debian.org/debian-lts-announce/2025/03/msg00001.html" }, { "url": "https://lists.debian.org/debian-lts-announce/2025/03/msg00002.html" } ], "providerMetadata": { "orgId": "af854a3a-2127-422b-91ae-364da2661108", "shortName": "CVE", "dateUpdated": "2025-11-03T20:51:38.620Z" } } ] } }