{"answers":{"affected":"","exploited":"There is no known exploitation of CVE-2026-98646 in the wild and no public exploit code.","fix":"Apply the vendor's patch.","what":"CVE-2026-98646 is a denial of service vulnerability in Linux, published on 18 Oct 2026. It can only be exploited from the same machine or local network, with no action from the victim."},"fix_prompt":"Check this codebase for CVE-2026-98646 and fix it if it is affected.\n\nWhat it is: CVE-2026-98646 is a denial of service vulnerability in Linux, published on 18 Oct 2026. It can only be exploited from the same machine or local network, with no action from the victim.\nExploitation: There is no known exploitation of CVE-2026-98646 in the wild and no public exploit code.\n\nAffected product: Linux. No package-level version data is available, so check the vendor advisory linked from the reference page.\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2026-98646/ (Markdown: https://insights.sbomify.com/CVE-2026-98646/index.md)","id":"CVE-2026-98646","markdown":"https://insights.sbomify.com/CVE-2026-98646/index.md","name":"CVE-2026-98646","record":{"aliases":["AZL-108797","BELL-CVE-2026-98646","DEBIAN-CVE-2026-98646","GHSA-vfmc-fwrh-r2q5","UBUNTU-CVE-2026-98646"],"analysis":{"component_type":"kernel","fix_type":"patch","impacts":["denial_of_service"],"network_reachable":"adjacent_or_local","non_default_config":false,"product_category":"Linux kernel","requires_auth":"high_privilege","summary":"A local attacker with high privileges can trigger a kernel bug via BPF socket destruction, causing a system crash or denial of service.","user_interaction":"not_required","vuln_class":"denial_of_service"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"Linux","cpe":[],"cvss":{"score":null,"severity":null,"source":null,"vector":null,"version":null},"cwes":[],"description":"In the Linux kernel, the following vulnerability has been resolved:\n\ntcp: Skip cond_resched() in inet_csk_listen_stop() under BPF context\n\nbpf_sock_destroy() runs from the tcp iterator, under rcu_read_lock(). If\nthe sock is a listener that still has children in its accept queue,\ntcp_abort() ends up in inet_csk_listen_stop() and the cond_resched()\nthere trips the debug check:\n\nBUG: sleeping function called from invalid context at net/ipv4/inet_connection_sock.c:1523\nin_atomic(): 0, irqs_disabled(): 0, non_block: 0, pid: 628, name: test_progs\npreempt_count: 0, expected: 0\nRCU nest depth: 1, expected: 0\nlocks held by test_progs/628: 3, last CPU#3:\n #0: ffff8881158cee18 (\u0026p-\u003elock){+.+.}-{4:4}, at: bpf_seq_read+0x56/0x1210\n #1: ffff8881106bb858 (sk_lock-AF_INET6){+.+.}-{0:0}, at: bpf_iter_tcp_seq_show+0x32b/0x4b0\n #2: ffffffffb435af20 (rcu_read_lock){....}-{1:3}, at: bpf_iter_run_prog+0x46b/0xde0\nCPU: 3 UID: 0 PID: 628 Comm: test_progs Tainted: G        W           7.2.0+ #65 PREEMPT\nTainted: [W]=WARN\nCall Trace:\n \u003cTASK\u003e\n dump_stack_lvl+0xc1/0xf0\n dump_stack+0x10/0x20\n __might_resched+0x3d2/0x610\n inet_csk_listen_stop+0x7b/0xbf0\n tcp_abort+0x23b/0x3b0\n bpf_sock_destroy+0xfc/0x140\n bpf_prog_448133d24601754f_iter_tcp6_server+0x81/0x8a\n bpf_iter_run_prog+0x538/0xde0\n bpf_iter_tcp_seq_show+0x26b/0x4b0\n bpf_seq_read+0x424/0x1210\n vfs_read+0x197/0xe40\n ksys_read+0x119/0x240\n __x64_sys_read+0x72/0xc0\n x64_sys_call+0x647/0x27e0\n do_syscall_64+0xe5/0x610\n entry_SYSCALL_64_after_hwframe+0x76/0x7e\nRIP: 0033:0x7fad39b28aca\nRSP: 002b:00007ffc381c61c0 EFLAGS: 00000246 ORIG_RAX: 0000000000000000\nRAX: ffffffffffffffda RBX: 00007ffc381c6a88 RCX: 00007fad39b28aca\nRDX: 0000000000000032 RSI: 00007ffc381c6250 RDI: 0000000000000014\nRBP: 00007ffc381c61e0 R08: 0000000000000000 R09: 0000000000000000\nR10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000003\nR13: 0000000000000000 R14: 000055f077c1bbb0 R15: 00007fad3a0f3000\n \u003c/TASK\u003e\n\nThe commit that added the kfunc already guards lock_sock() in tcp_abort()\nand udp_abort() with has_current_bpf_ctx(), but missed the listener path.\nDo the same for the cond_resched(). The loop runs inside the iterator's\nrcu_read_lock(), it must not reschedule or report a quiescent state there.","ecosystems":[],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"none_known"},"has_fix":true,"headline":"tcp: Skip cond_resched() in inet_csk_listen_stop() under BPF context","id":"CVE-2026-98646","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":null,"product":null,"products":[],"type":"denial_of_service","year":"2026"},"n_packages":0,"n_references":5,"next":{"headline":"bpf: Fix divide-by-zero in btf_struct_walk()","id":"CVE-2026-98647"},"packages":[],"prev":{"headline":"HID: winwing: fix use-after-free in force feedback teardown","id":"CVE-2026-98645"},"products":["Linux"],"published":"2026-10-18","related":[],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"}],"ssvc":{"automatable":null,"exploitation":null,"technical_impact":null},"state":"PUBLISHED","updated":"2026-10-19","vendors":["Linux"]},"summary":"A local attacker with high privileges can trigger a kernel bug via BPF socket destruction, causing a system crash or denial of service.","url":"https://insights.sbomify.com/CVE-2026-98646/"}