{"id":"CVE-2026-98558","kind":"vulnerability","aliases":["CVE-2026-98558"],"related":[],"title":"Linux kernel: deferred socket buffers can stall page pool teardown when CPUs go offline","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: flush skb_defer_nodes in dev_cpu_dead()\n\nWhen a CPU goes offline, dev_cpu_dead() drains its softnet queues\n(completion_queue, output_queue, poll_list, process_queue, and\ninput_pkt_queue), but leaves net_hotdata.skb_defer_nodes untouched.\n\nIf oldcpu goes offline while holding pending skbs in its\nskb_defer_nodes lists (e.g. below the sysctl_skb_defer_max >> 1 IPI\nthreshold, or if the IPI races with CPU teardown), those skbs remain\nstranded until oldcpu is brought back online. If any of these skbs\nhold page_pool fragments, page_pool_destroy() will stall indefinitely\nwaiting for inflight pages to be returned when a netdev or driver is\ntorn down while oldcpu is offline.\n\nAdditionally, if smp_call_function_single_async() fails in\nkick_defer_list_purge() because the target CPU went offline, reset\ndefer_ipi_scheduled to 0 so future IPI kicks are not blocked when the\nCPU comes back online.\n\nAlso, if oldcpu was the last online CPU on its NUMA node, drain that\nnode's slot across all CPUs so no skbs deferred from that node remain\nstranded on idle remote CPUs (or if the node itself is subsequently\nofflined).\n\nFinally, in skb_attempt_defer_free(), re-check cpu_online(cpu) and\nwhether the caller migrated CPUs after llist_add(), flushing the node\nlist if so, to close the preemption TOCTOU race against CPU/node\nteardown.","summary":"When a CPU goes offline, the Linux kernel can leave socket buffers stranded on that CPU's deferred-free list. If those buffers hold page pool fragments, tearing down a network device or driver can hang indefinitely; the sources do not describe an attacker gaining code execution or data.","severity":"unknown","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["linux-kernel","networking","runtime","self-hosted"],"not_affected_if":["default-config"],"how_to_check":"- unknown","fix":"- unknown","status":"open","published_at":"2026-10-18T16:17:07+00:00","first_seen_at":"2026-10-23T21:57:15+00:00","triaged_at":"2026-10-25T05:23:25+00:00","updated_at":"2026-10-25T05:23:25+00:00","category":"runtime","confidence":0.5,"triage":{"at":"2026-10-25T05:23:25Z","model":"claude-haiku-5-5","output":{"fix":"- unknown","reach":"local","title":"Linux kernel: deferred socket buffers can stall page pool teardown when CPUs go offline","impact":"low","summary":"When a CPU goes offline, the Linux kernel can leave socket buffers stranded on that CPU's deferred-free list. If those buffers hold page pool fragments, tearing down a network device or driver can hang indefinitely; the sources do not describe an attacker gaining code execution or data.","category":"runtime","nicknames":[],"who_cares":["linux-kernel","self-hosted","networking"],"confidence":0.5,"needs_auth":"unknown","worst_case":"Network teardown hangs indefinitely, a denial of service on the host","analyst_note":"Find affected and fixed kernel versions and the upstream commit in the NVD entry at https://nvd.nist.gov/vuln/detail/CVE-2026-98558 and the linked kernel.org stable commits.","how_to_check":"- unknown","needs_analyst":true,"not_affected_if":["default-config"],"who_is_affected":"Systems running a Linux kernel with the affected fix range, where CPUs are taken offline (for example by hotplug or power management) and network devices or drivers using page pools are torn down. The sources do not say which kernel versions are affected or whether a fixed release exists. Systems that never offline CPUs or tear down network drivers at runtime are unlikely to hit it.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"unknown"},"cost_usd":0.000641,"input_tokens":3781,"output_tokens":525,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-2026':16A,19A '-98558':17A,20A '0':228C '1':149C 'across':259C 'add':303C 'addit':204C 'also':242C 'async':210C 'attack':73B 'attempt':286C 'back':168C,240C 'block':235C 'brought':167C 'buffer':5A,40B,52B 'call':207C 'caller':298C 'check':291C 'close':311C 'code':75B 'come':239C 'complet':110C 'cpu':31B,44B,96C,100C,104C,158C,220C,238C,249C,292C,294C 'cpu/node':317C 'cpus':12A,261C,274C,300C 'cve':15A,18A 'data':78B 'dead':97C,105C 'defer':3A,47B,92C,125C,139C,147C,214C,224C,265C,287C 'deferred-fre':46B 'describ':71B 'destroy':181C 'dev':95C,103C 'devic':61B 'drain':106C,254C 'driver':63B,196C 'e.g':142C 'execut':76B 'fail':211C 'final':283C 'flush':90C,304C 'follow':84C 'fragment':56B,178C 'free':48B,288C 'function':208C 'futur':230C 'gain':74B 'go':13A 'goe':32B,101C,130C 'hang':65B 'hold':53B,133C,175C 'host':28B 'idl':272C 'indefinit':66B,184C 'inflight':187C 'input':119C 'ipi':150C,155C,225C,231C 'kernel':2A,23B,36B,82C 'kick':213C,232C 'last':247C 'leav':38B,123C 'linux':1A,22B,35B,81C 'linux-kernel':21B 'list':49B,115C,141C,215C,307C 'llist':302C 'max':148C 'migrat':299C 'net':89C 'net_hotdata.skb':124C 'netdev':194C 'network':24B,60B 'node':93C,126C,140C,253C,256C,268C,278C,306C 'numa':252C 'offlin':14A,33B,102C,131C,203C,222C,282C 'oldcpu':129C,165C,201C,244C 'onlin':169C,241C,248C,293C 'output':112C 'page':8A,54B,176C,179C,188C 'pend':134C 'pkt':120C 'poll':114C 'pool':9A,55B,177C,180C 'preemption':313C 'process':116C 'purg':216C 'queue':109C,111C,113C,117C,121C 'race':156C,315C 're':290C 're-check':289C 'remain':162C,269C 'remot':273C 'reset':223C 'resolv':88C 'return':191C 'runtim':25B 'schedul':226C 'self':27B 'self-host':26B 'singl':209C 'skb':91C,138C,146C,285C 'skbs':135C,161C,174C,264C 'slot':258C 'smp':206C 'socket':4A,39B 'softnet':108C 'sourc':68B 'stall':7A,183C 'strand':41B,163C,270C 'subsequ':281C 'sysctl':145C 'target':219C 'tear':57B 'teardown':10A,159C,318C 'threshold':151C 'toctou':314C 'torn':198C 'untouch':127C 'vulner':85C 'wait':185C 'went':221C 'whether':296C","nicknames":[],"mitigations":[],"who_affected":"Systems running a Linux kernel with the affected fix range, where CPUs are taken offline (for example by hotplug or power management) and network devices or drivers using page pools are torn down. The sources do not say which kernel versions are affected or whether a fixed release exists. Systems that never offline CPUs or tear down network drivers at runtime are unlikely to hit it.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-18T16:17:07+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-98558","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-98558","severity":null,"published_at":"2026-10-18T16:17:07+00:00","modified_at":"2026-10-19T10:19:12+00:00","first_seen_at":"2026-10-23T21:57:15+00:00","fetched_at":"2026-10-23T22:28:56+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}