{"dataType":"CVE_RECORD","cveMetadata":{"cveId":"CVE-2024-36883","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2024-05-30T15:25:07.064Z","datePublished":"2024-05-30T15:28:53.302Z","dateUpdated":"2026-08-05T11:31:49.005Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-05T11:31:49.005Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: fix out-of-bounds access in ops_init\n\nnet_alloc_generic is called by net_alloc, which is called without any\nlocking. It reads max_gen_ptrs, which is changed under pernet_ops_rwsem. It\nis read twice, first to allocate an array, then to set s.len, which is\nlater used to limit the bounds of the array access.\n\nIt is possible that the array is allocated and another thread is\nregistering a new pernet ops, increments max_gen_ptrs, which is then used\nto set s.len with a larger than allocated length for the variable array.\n\nFix it by reading max_gen_ptrs only once in net_alloc_generic. If\nmax_gen_ptrs is later incremented, it will be caught in net_assign_generic."}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - The vulnerable code is reached through the local `clone()`/`unshare(CLONE_NEWNET)` syscall path (`copy_net_ns` → `net_alloc` → `net_alloc_generic`) raced against local pernet-ops registration. No remote packet processing is involved, so local access is required.\nAC:L - The attacker controls both sides of the race — one set of threads spins on netns creation while another triggers `register_pernet_operations()` via autoloadable network modules — and the window is a sleepable `kzalloc(GFP_KERNEL)` that can be widened arbitrarily with memory pressure. Once the window is hit, the subsequent `setup_net()` ordering follows naturally from the rwsem, requiring no additional luck.\nPR:L - Creating a network namespace requires only `ns_capable(user_ns, CAP_SYS_ADMIN)`, which any unprivileged user obtains via `unshare -Urn` on the widely-deployed configurations that enable unprivileged user namespaces; module autoload for the second race side is likewise reachable with CAP_NET_ADMIN inside that namespace.\nUI:N - The attacker triggers the entire sequence from its own threads via syscalls; no action by any other user or victim process is needed.\nS:U - The out-of-bounds accesses corrupt kernel slab memory within the same kernel security authority; no VM, IOMMU, or other trust boundary is crossed.\nC:H - The oversized `s.len` drives an out-of-bounds `memcpy` that copies adjacent slab contents into the `net_generic` array, where those leaked qwords are then handed out by `net_generic()` as subsystem private-data pointers and dereferenced, yielding attacker-influenced kernel heap disclosure.\nI:H - `net_assign_generic()` writes a valid kernel heap pointer at `old_ng->ptr[id]` beyond the end of the allocation, and the attacker can size the allocation to a kmalloc bucket boundary so the write lands in a neighboring object — a controlled cross-object heap write suitable for control-flow hijacking.\nA:H - Out-of-bounds slab writes and the resulting wild-pointer dereferences and `kfree()` of garbage values in `ops_free_list()` reliably produce kernel oops, slab corruption, or panic."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/core/net_namespace.c"],"versions":[{"version":"073862ba5d249c20bd5c49fc6d904ff0e1f6a672","lessThan":"3cdc34d76c4f777579e28ad373979d36c030cfd3","status":"affected","versionType":"git"},{"version":"073862ba5d249c20bd5c49fc6d904ff0e1f6a672","lessThan":"7b0e64583eab8c1d896b47e5dd0bf2e7d86ec41f","status":"affected","versionType":"git"},{"version":"073862ba5d249c20bd5c49fc6d904ff0e1f6a672","lessThan":"0c3248bc708a7797be573214065cf908ff1f54c7","status":"affected","versionType":"git"},{"version":"073862ba5d249c20bd5c49fc6d904ff0e1f6a672","lessThan":"9518b79bfd2fbf99fa9b7e8e36bcb1825e7ba030","status":"affected","versionType":"git"},{"version":"073862ba5d249c20bd5c49fc6d904ff0e1f6a672","lessThan":"2d60ff5874aefd006717ca5e22ac1e25eac29c42","status":"affected","versionType":"git"},{"version":"073862ba5d249c20bd5c49fc6d904ff0e1f6a672","lessThan":"b6dbfd5bcc267a95a0bf1bf96af46243f96ec6cd","status":"affected","versionType":"git"},{"version":"073862ba5d249c20bd5c49fc6d904ff0e1f6a672","lessThan":"f4f94587e1bf87cb40ec33955a9d90148dd026ab","status":"affected","versionType":"git"},{"version":"073862ba5d249c20bd5c49fc6d904ff0e1f6a672","lessThan":"a26ff37e624d12e28077e5b24d2b264f62764ad6","status":"affected","versionType":"git"},{"version":"561331eae0a03d0c4cf60f3cf485aa3e8aa5ab48","status":"affected","versionType":"git"},{"version":"a2c82f7bee1ffa9eafa1fb0bd886a7eea8c9e497","status":"affected","versionType":"git"},{"version":"3.0.19","lessThan":"3.1","status":"affected","versionType":"semver"},{"version":"3.2.3","lessThan":"3.3","status":"affected","versionType":"semver"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/core/net_namespace.c"],"versions":[{"version":"3.3","status":"affected"},{"version":"0","lessThan":"3.3","status":"unaffected","versionType":"semver"},{"version":"4.19.314","lessThanOrEqual":"4.19.*","status":"unaffected","versionType":"semver"},{"version":"5.4.276","lessThanOrEqual":"5.4.*","status":"unaffected","versionType":"semver"},{"version":"5.10.217","lessThanOrEqual":"5.10.*","status":"unaffected","versionType":"semver"},{"version":"5.15.159","lessThanOrEqual":"5.15.*","status":"unaffected","versionType":"semver"},{"version":"6.1.91","lessThanOrEqual":"6.1.*","status":"unaffected","versionType":"semver"},{"version":"6.6.31","lessThanOrEqual":"6.6.*","status":"unaffected","versionType":"semver"},{"version":"6.8.10","lessThanOrEqual":"6.8.*","status":"unaffected","versionType":"semver"},{"version":"6.9","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":"3.3","versionEndExcluding":"4.19.314"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.3","versionEndExcluding":"5.4.276"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.3","versionEndExcluding":"5.10.217"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.3","versionEndExcluding":"5.15.159"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.3","versionEndExcluding":"6.1.91"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.3","versionEndExcluding":"6.6.31"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.3","versionEndExcluding":"6.8.10"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.3","versionEndExcluding":"6.9"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.0.19"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.2.3"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/3cdc34d76c4f777579e28ad373979d36c030cfd3"},{"url":"https://git.kernel.org/stable/c/7b0e64583eab8c1d896b47e5dd0bf2e7d86ec41f"},{"url":"https://git.kernel.org/stable/c/0c3248bc708a7797be573214065cf908ff1f54c7"},{"url":"https://git.kernel.org/stable/c/9518b79bfd2fbf99fa9b7e8e36bcb1825e7ba030"},{"url":"https://git.kernel.org/stable/c/2d60ff5874aefd006717ca5e22ac1e25eac29c42"},{"url":"https://git.kernel.org/stable/c/b6dbfd5bcc267a95a0bf1bf96af46243f96ec6cd"},{"url":"https://git.kernel.org/stable/c/f4f94587e1bf87cb40ec33955a9d90148dd026ab"},{"url":"https://git.kernel.org/stable/c/a26ff37e624d12e28077e5b24d2b264f62764ad6"}],"title":"net: fix out-of-bounds access in ops_init","x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2024-06-12T19:28:57.397023Z","id":"CVE-2024-36883","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"title":"CISA ADP Vulnrichment","providerMetadata":{"orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP","dateUpdated":"2024-06-12T19:29:08.414Z"}},{"title":"CVE Program Container","references":[{"url":"https://git.kernel.org/stable/c/3cdc34d76c4f777579e28ad373979d36c030cfd3","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/7b0e64583eab8c1d896b47e5dd0bf2e7d86ec41f","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/0c3248bc708a7797be573214065cf908ff1f54c7","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/9518b79bfd2fbf99fa9b7e8e36bcb1825e7ba030","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/2d60ff5874aefd006717ca5e22ac1e25eac29c42","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/b6dbfd5bcc267a95a0bf1bf96af46243f96ec6cd","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/f4f94587e1bf87cb40ec33955a9d90148dd026ab","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/a26ff37e624d12e28077e5b24d2b264f62764ad6","tags":["x_transferred"]},{"url":"https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html","tags":["x_transferred"]},{"url":"https://lists.debian.org/debian-lts-announce/2024/06/msg00019.html","tags":["x_transferred"]},{"url":"https://security.netapp.com/advisory/ntap-20241018-0001/"}],"providerMetadata":{"orgId":"af854a3a-2127-422b-91ae-364da2661108","shortName":"CVE","dateUpdated":"2024-10-18T13:07:38.120Z"}}]},"dataVersion":"5.2"}