{"id":"CVE-2026-98442","kind":"vulnerability","aliases":["CVE-2026-98442"],"related":[],"title":"Linux kernel: connection tracking helper use-after-free can crash or corrupt memory","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet/sched: act_ct: fix helper UAF due to extensions realloc\n\nWhile calling the helpers, a raw pointer to the extensions area is\nwired into expectations list:\n\n  -> nf_ct_helper()\n   -> helper->help()\n    -> nf_ct_expect_related_report()\n     -> nf_ct_expect_insert()\n      -> hlist_add_head_rcu(&exp->lnode, &master_help->expectations)\n\nIn case the connection is not confirmed yet, more extensions can be\nadded afterwards with *_ext_add() calls reallocating the extension\nspace and leaving the now invalid pointer in the expectations list\nthat is later accessed while removing the expectation.\n\nMake sure that helpers are called at the end after all the other\nextensions are already added.\n\nNote that the helper rejection now leaves the mark and labels set,\nbut that's not different from how the NAT was handled before or how\nthe mark and the labels were handled on confirmation failure.  And\nthere are no atomicity guarantees provided by the API anyway.","summary":"In the Linux kernel's act_ct traffic-control action, connection-tracking helpers store a raw pointer to an extension area that can be reallocated when more extensions are added, leaving a dangling pointer in the expectations list. Freeing that stale pointer later is a use-after-free, which the sources do not say is remotely triggerable or what exact impact an attacker gets.","severity":"unknown","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["kernel","linux","net-sched","netfilter","runtime"],"not_affected_if":[],"how_to_check":null,"fix":null,"status":"open","published_at":"2026-10-18T16:16:54+00:00","first_seen_at":"2026-10-23T21:57:15+00:00","triaged_at":"2026-10-25T05:27:31+00:00","updated_at":"2026-10-25T05:27:31+00:00","category":"runtime","confidence":0.4,"triage":{"at":"2026-10-25T05:27:31Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"unknown","title":"Linux kernel: connection tracking helper use-after-free can crash or corrupt memory","impact":"medium","summary":"In the Linux kernel's act_ct traffic-control action, connection-tracking helpers store a raw pointer to an extension area that can be reallocated when more extensions are added, leaving a dangling pointer in the expectations list. Freeing that stale pointer later is a use-after-free, which the sources do not say is remotely triggerable or what exact impact an attacker gets.","category":"runtime","nicknames":[],"who_cares":["linux","kernel","net-sched","netfilter"],"confidence":0.4,"needs_auth":"unknown","worst_case":"unknown","analyst_note":"Find the upstream kernel commit fixing act_ct helper UAF and the list of affected and fixed kernel stable versions; check whether act_ct with ct helpers is reachable from unprivileged traffic and whether CVSS is scored.","how_to_check":"unknown","needs_analyst":true,"not_affected_if":[],"who_is_affected":"unknown","user_interaction":"unknown","needs_special_setup":"unknown","severity_if_unknown":"unknown"},"cost_usd":0.000568,"input_tokens":3568,"output_tokens":422,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-2026':16A,19A '-98442':17A,20A 'access':189C 'act':33B,106C 'action':38B 'add':59B,146C,166C,170C,210C 'afterward':167C 'alreadi':209C 'anyway':257C 'api':256C 'area':50B,125C 'atom':251C 'attack':93B 'call':116C,171C,199C 'case':155C 'confirm':160C,245C 'connect':3A,40B,157C 'connection-track':39B 'control':37B 'corrupt':13A 'crash':11A 'ct':34B,107C,132C,137C,142C 'cve':15A,18A 'dangl':62B 'differ':227C 'due':111C 'end':202C 'exact':90B 'exp':149C 'expect':66B,129C,138C,143C,153C,184C,193C 'ext':169C 'extens':49B,57B,113C,124C,163C,174C,207C 'failur':246C 'fix':108C 'follow':100C 'free':9A,68B,78B 'get':94B 'guarante':252C 'handl':233C,243C 'head':147C 'help':135C,152C 'helper':5A,42B,109C,118C,133C,134C,197C,214C 'hlist':145C 'impact':91B 'insert':144C 'invalid':180C 'kernel':2A,21B,31B,98C 'label':221C,241C 'later':72B,188C 'leav':60B,177C,217C 'linux':1A,22B,30B,97C 'list':67B,130C,185C 'lnode':150C 'make':194C 'mark':219C,238C 'master':151C 'memori':14A 'nat':231C 'net':24B 'net-sch':23B 'net/sched':105C 'netfilt':26B 'nf':131C,136C,141C 'note':211C 'pointer':46B,63B,71B,121C,181C 'provid':253C 'raw':45B,120C 'rcu':148C 'realloc':54B,114C,172C 'reject':215C 'relat':139C 'remot':86B 'remov':191C 'report':140C 'resolv':104C 'runtim':27B 'say':84B 'sched':25B 'set':222C 'sourc':81B 'space':175C 'stale':70B 'store':43B 'sure':195C 'track':4A,41B 'traffic':36B 'traffic-control':35B 'trigger':87B 'uaf':110C 'use':7A,76B 'use-after-fre':6A,75B 'vulner':101C 'wire':127C 'yet':161C","nicknames":[],"mitigations":[],"who_affected":null,"tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-18T16:16:54+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-98442","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-98442","severity":null,"published_at":"2026-10-18T16:16:54+00:00","modified_at":"2026-10-21T13:21:29+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"}