{"dataType":"CVE_RECORD","cveMetadata":{"cveId":"CVE-2024-36286","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2024-06-21T10:13:16.315Z","datePublished":"2024-06-21T10:18:08.364Z","dateUpdated":"2026-08-05T11:31:43.632Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-05T11:31:43.632Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: nfnetlink_queue: acquire rcu_read_lock() in instance_destroy_rcu()\n\nsyzbot reported that nf_reinject() could be called without rcu_read_lock() :\n\nWARNING: suspicious RCU usage\n6.9.0-rc7-syzkaller-02060-g5c1672705a1a #0 Not tainted\n\nnet/netfilter/nfnetlink_queue.c:263 suspicious rcu_dereference_check() usage!\n\nother info that might help us debug this:\n\nrcu_scheduler_active = 2, debug_locks = 1\n2 locks held by syz-executor.4/13427:\n  #0: ffffffff8e334f60 (rcu_callback){....}-{0:0}, at: rcu_lock_acquire include/linux/rcupdate.h:329 [inline]\n  #0: ffffffff8e334f60 (rcu_callback){....}-{0:0}, at: rcu_do_batch kernel/rcu/tree.c:2190 [inline]\n  #0: ffffffff8e334f60 (rcu_callback){....}-{0:0}, at: rcu_core+0xa86/0x1830 kernel/rcu/tree.c:2471\n  #1: ffff88801ca92958 (&inst->lock){+.-.}-{2:2}, at: spin_lock_bh include/linux/spinlock.h:356 [inline]\n  #1: ffff88801ca92958 (&inst->lock){+.-.}-{2:2}, at: nfqnl_flush net/netfilter/nfnetlink_queue.c:405 [inline]\n  #1: ffff88801ca92958 (&inst->lock){+.-.}-{2:2}, at: instance_destroy_rcu+0x30/0x220 net/netfilter/nfnetlink_queue.c:172\n\nstack backtrace:\nCPU: 0 PID: 13427 Comm: syz-executor.4 Not tainted 6.9.0-rc7-syzkaller-02060-g5c1672705a1a #0\nHardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 04/02/2024\nCall Trace:\n <IRQ>\n  __dump_stack lib/dump_stack.c:88 [inline]\n  dump_stack_lvl+0x241/0x360 lib/dump_stack.c:114\n  lockdep_rcu_suspicious+0x221/0x340 kernel/locking/lockdep.c:6712\n  nf_reinject net/netfilter/nfnetlink_queue.c:323 [inline]\n  nfqnl_reinject+0x6ec/0x1120 net/netfilter/nfnetlink_queue.c:397\n  nfqnl_flush net/netfilter/nfnetlink_queue.c:410 [inline]\n  instance_destroy_rcu+0x1ae/0x220 net/netfilter/nfnetlink_queue.c:172\n  rcu_do_batch kernel/rcu/tree.c:2196 [inline]\n  rcu_core+0xafd/0x1830 kernel/rcu/tree.c:2471\n  handle_softirqs+0x2d6/0x990 kernel/softirq.c:554\n  __do_softirq kernel/softirq.c:588 [inline]\n  invoke_softirq kernel/softirq.c:428 [inline]\n  __irq_exit_rcu+0xf4/0x1c0 kernel/softirq.c:637\n  irq_exit_rcu+0x9/0x30 kernel/softirq.c:649\n  instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1043 [inline]\n  sysvec_apic_timer_interrupt+0xa6/0xc0 arch/x86/kernel/apic/apic.c:1043\n </IRQ>\n <TASK>"}],"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 trigger is a local `NETLINK_NETFILTER` socket operation — an `NFQNL_CFG_CMD_UNBIND` message or simply closing the nfnetlink socket (`NETLINK_URELEASE` notifier) — which schedules the `instance_destroy_rcu()` callback. Although the queued entries originate from network packets, the vulnerable code path is entered only through a local netlink syscall.\nAC:L - The attacker deterministically controls both preconditions: they populate `queue_list` by binding an NFQUEUE and never issuing verdicts on their own self-generated traffic, then trigger the flush by closing the socket or sending UNBIND. No race must be won and no uncontrollable state is required — the RCU callback always executes `nfqnl_flush()` on a non-empty queue.\nPR:L - `nfnetlink_rcv()` gates on `netlink_net_capable(skb, CAP_NET_ADMIN)`, which resolves to `ns_capable()` against the netns's user_ns, so an unprivileged user obtains it via `unshare -Urn`; nftables/iptables NFQUEUE targets and loopback traffic are fully functional inside that namespace. No real root in the initial namespace is needed.\nUI:N - The attacker performs every step themselves — creating the namespace, binding the queue, generating the packets, and destroying the instance. No victim action or cooperation is involved.\nS:U - The unprotected dereference and its consequences are confined to the kernel's own security authority; there is no crossing of a VM, hypervisor, or IOMMU boundary. This is a standard in-kernel memory-safety issue.\nC:H - `nf_reinject()` performs `rcu_dereference()` on `net->nf.hooks_*[hooknum]` with no RCU read-side protection, and `nf_hook_entries` objects are reclaimed via `call_rcu(&head->head, __nf_hook_entries_free)` — so the read can land on freed memory that an attacker can groom via heap spraying, disclosing kernel data and pointers through the subsequently read `num_hook_entries` and `hooks[]` array.\nI:H - A use-after-free of `struct nf_hook_entries` exposes an array of hook function pointers that `nf_reinject()` indexes as `&hooks->hooks[i]` and invokes via `nf_hook_entry_hookfn()`/`nf_iterate()` on the REPEAT/ACCEPT paths, giving a realloc-and-control primitive suitable for control-flow hijack and privilege escalation.\nA:H - The reproducible syzbot outcome is a `WARNING: suspicious RCU usage` lockdep splat from softirq context, which panics outright on the many production and hardened deployments booted with `panic_on_warn=1`; a real hook-table use-after-free additionally causes oops or panic. Either way the result is a full kernel-level denial of service."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/netfilter/nfnetlink_queue.c"],"versions":[{"version":"9872bec773c2e8503fec480c1e8a0c732517e257","lessThan":"8658bd777cbfcb0c13df23d0ea120e70517761b9","status":"affected","versionType":"git"},{"version":"9872bec773c2e8503fec480c1e8a0c732517e257","lessThan":"3989b817857f4890fab9379221a9d3f52bf5c256","status":"affected","versionType":"git"},{"version":"9872bec773c2e8503fec480c1e8a0c732517e257","lessThan":"e01065b339e323b3dfa1be217fd89e9b3208b0ab","status":"affected","versionType":"git"},{"version":"9872bec773c2e8503fec480c1e8a0c732517e257","lessThan":"25ea5377e3d2921a0f96ae2551f5ab1b36825dd4","status":"affected","versionType":"git"},{"version":"9872bec773c2e8503fec480c1e8a0c732517e257","lessThan":"68f40354a3851df46c27be96b84f11ae193e36c5","status":"affected","versionType":"git"},{"version":"9872bec773c2e8503fec480c1e8a0c732517e257","lessThan":"8f365564af898819a523f1a8cf5c6ce053e9f718","status":"affected","versionType":"git"},{"version":"9872bec773c2e8503fec480c1e8a0c732517e257","lessThan":"215df6490e208bfdd5b3012f5075e7f8736f3e7a","status":"affected","versionType":"git"},{"version":"9872bec773c2e8503fec480c1e8a0c732517e257","lessThan":"dc21c6cc3d6986d938efbf95de62473982c98dec","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/nfnetlink_queue.c"],"versions":[{"version":"2.6.25","status":"affected"},{"version":"0","lessThan":"2.6.25","status":"unaffected","versionType":"semver"},{"version":"4.19.316","lessThanOrEqual":"4.19.*","status":"unaffected","versionType":"semver"},{"version":"5.4.278","lessThanOrEqual":"5.4.*","status":"unaffected","versionType":"semver"},{"version":"5.10.219","lessThanOrEqual":"5.10.*","status":"unaffected","versionType":"semver"},{"version":"5.15.161","lessThanOrEqual":"5.15.*","status":"unaffected","versionType":"semver"},{"version":"6.1.93","lessThanOrEqual":"6.1.*","status":"unaffected","versionType":"semver"},{"version":"6.6.33","lessThanOrEqual":"6.6.*","status":"unaffected","versionType":"semver"},{"version":"6.9.4","lessThanOrEqual":"6.9.*","status":"unaffected","versionType":"semver"},{"version":"6.10","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.25","versionEndExcluding":"4.19.316"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.25","versionEndExcluding":"5.4.278"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.25","versionEndExcluding":"5.10.219"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.25","versionEndExcluding":"5.15.161"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.25","versionEndExcluding":"6.1.93"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.25","versionEndExcluding":"6.6.33"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.25","versionEndExcluding":"6.9.4"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.25","versionEndExcluding":"6.10"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/8658bd777cbfcb0c13df23d0ea120e70517761b9"},{"url":"https://git.kernel.org/stable/c/3989b817857f4890fab9379221a9d3f52bf5c256"},{"url":"https://git.kernel.org/stable/c/e01065b339e323b3dfa1be217fd89e9b3208b0ab"},{"url":"https://git.kernel.org/stable/c/25ea5377e3d2921a0f96ae2551f5ab1b36825dd4"},{"url":"https://git.kernel.org/stable/c/68f40354a3851df46c27be96b84f11ae193e36c5"},{"url":"https://git.kernel.org/stable/c/8f365564af898819a523f1a8cf5c6ce053e9f718"},{"url":"https://git.kernel.org/stable/c/215df6490e208bfdd5b3012f5075e7f8736f3e7a"},{"url":"https://git.kernel.org/stable/c/dc21c6cc3d6986d938efbf95de62473982c98dec"}],"title":"netfilter: nfnetlink_queue: acquire rcu_read_lock() in instance_destroy_rcu()","x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CVE Program Container","references":[{"url":"https://git.kernel.org/stable/c/8658bd777cbfcb0c13df23d0ea120e70517761b9","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/3989b817857f4890fab9379221a9d3f52bf5c256","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/e01065b339e323b3dfa1be217fd89e9b3208b0ab","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/25ea5377e3d2921a0f96ae2551f5ab1b36825dd4","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/68f40354a3851df46c27be96b84f11ae193e36c5","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/8f365564af898819a523f1a8cf5c6ce053e9f718","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/215df6490e208bfdd5b3012f5075e7f8736f3e7a","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/dc21c6cc3d6986d938efbf95de62473982c98dec","tags":["x_transferred"]},{"url":"https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html"}],"providerMetadata":{"orgId":"af854a3a-2127-422b-91ae-364da2661108","shortName":"CVE","dateUpdated":"2025-11-04T17:21:08.764Z"}},{"metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2024-36286","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"version":"2.0.3","timestamp":"2024-09-10T17:09:34.720987Z"}}}],"title":"CISA ADP Vulnrichment","providerMetadata":{"orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP","dateUpdated":"2024-09-11T17:34:45.892Z"}},{"x_adpType":"supplier","providerMetadata":{"orgId":"0b142b55-0307-4c5a-b3c9-f314f3fb7c5e","shortName":"siemens-SADP","dateUpdated":"2026-05-12T11:53:47.639Z"},"affected":[{"vendor":"Siemens","product":"RUGGEDCOM RST2428P","versions":[{"status":"affected","version":"0","lessThan":"V3.1","versionType":"custom"}],"defaultStatus":"unknown"},{"vendor":"Siemens","product":"SCALANCE XC-300/XR-300/XC-400/XR-500WG/XR-500 family","versions":[{"status":"unaffected","version":"0","lessThan":"*","versionType":"custom"}],"defaultStatus":"unknown"},{"vendor":"Siemens","product":"SCALANCE XCM-/XRM-/XCH-/XRH-300 family","versions":[{"status":"affected","version":"0","lessThan":"V3.1","versionType":"custom"}],"defaultStatus":"unknown"},{"vendor":"Siemens","product":"SIMATIC S7-1500 TM MFP - GNU/Linux subsystem","versions":[{"status":"affected","version":"0","lessThan":"*","versionType":"custom"}],"defaultStatus":"unknown"},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518-4 PN/DP MFP","versions":[{"status":"affected","version":"V3.1.0","lessThan":"V3.1.5","versionType":"custom"}],"defaultStatus":"unknown"},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518-4 PN/DP MFP","versions":[{"status":"affected","version":"V3.1.0","lessThan":"V3.1.5","versionType":"custom"}],"defaultStatus":"unknown"},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP","versions":[{"status":"affected","version":"V3.1.0","lessThan":"V3.1.5","versionType":"custom"}],"defaultStatus":"unknown"},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP","versions":[{"status":"affected","version":"V3.1.0","lessThan":"V3.1.5","versionType":"custom"}],"defaultStatus":"unknown"},{"vendor":"Siemens","product":"SIPLUS S7-1500 CPU 1518-4 PN/DP MFP","versions":[{"status":"affected","version":"V3.1.0","lessThan":"V3.1.5","versionType":"custom"}],"defaultStatus":"unknown"}],"references":[{"url":"https://cert-portal.siemens.com/productcert/html/ssa-398330.html"},{"url":"https://cert-portal.siemens.com/productcert/html/ssa-265688.html"},{"url":"https://cert-portal.siemens.com/productcert/html/ssa-613116.html"}]}]},"dataVersion":"5.2"}