{"id":"CVE-2026-99144","kind":"vulnerability","aliases":["CVE-2026-99144"],"related":[],"title":"Linux kernel: sched_ext use-after-free of destroyed user queue","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nsched_ext: Fix use-after-free of a destroyed user DSQ by a deferred reenqueue\n\nA deferred reenqueue can read a freed user DSQ. The request stays on its\nCPU's deferred list until run_deferred() takes it, and the RCU callback that\nfrees the DSQ assumes that the grace period has flushed it, so exit_dsq()\nchecks the per-CPU node without the deferred list lock. A grace period waits\nfor readers in flight, not for a pending run_deferred(). A run_deferred()\nwhich starts after the grace period began can detach the request right\nbefore the callback looks and then read the freed DSQ's id.\n\nCancel the pending requests before the grace period instead. The irq work\nthat frees the DSQ unlinks every CPU's request under the per-CPU deferred\nlist lock, and schedule_dsq_reenq() ignores a new request under the same\nlock once the id is invalid. Only a run_deferred() that started before the\ngrace period can hold a request, and it runs with IRQs disabled, so the\ngrace period waits for it and nothing touches the DSQ after the callback.","summary":"A deferred reenqueue request in the sched_ext scheduler can read a user dispatch queue after it has been freed. The sources do not state what an attacker gets beyond a read of freed memory.","severity":"unknown","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["linux-kernel","runtime","sched-ext"],"not_affected_if":[],"how_to_check":"- unknown","fix":"- unknown","status":"open","published_at":"2026-10-28T11:17:34+00:00","first_seen_at":"2026-10-28T11:32:35+00:00","triaged_at":"2026-10-28T11:36:02+00:00","updated_at":"2026-10-28T11:36:02+00:00","category":"runtime","confidence":0.4,"triage":{"at":"2026-10-28T11:36:02Z","model":"claude-haiku-5-5","output":{"fix":"- unknown","reach":"local","title":"Linux kernel: sched_ext use-after-free of destroyed user queue","impact":"medium","summary":"A deferred reenqueue request in the sched_ext scheduler can read a user dispatch queue after it has been freed. The sources do not state what an attacker gets beyond a read of freed memory.","category":"runtime","nicknames":[],"who_cares":["linux-kernel","sched-ext"],"confidence":0.4,"needs_auth":"unknown","worst_case":"unknown","analyst_note":"Check the kernel fix commit and affected kernel version range at NVD (https://nvd.nist.gov/vuln/detail/CVE-2026-99144) and whether sched_ext is enabled by default in distro kernels.","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.000535,"input_tokens":3597,"output_tokens":351,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-2026':14A,17A '-99144':15A,18A 'assum':118C 'attack':53B 'began':163C 'beyond':55B 'callback':113C,171C,261C 'cancel':181C 'check':129C 'cpu':101C,133C,199C,206C 'cve':13A,16A 'defer':27B,85C,88C,103C,107C,137C,153C,156C,207C,230C 'destroy':10A,80C 'detach':165C 'disabl':246C 'dispatch':39B 'dsq':82C,95C,117C,128C,178C,196C,212C,258C 'everi':198C 'exit':127C 'ext':4A,25B,33B,72C 'fix':73C 'flight':147C 'flush':124C 'follow':66C 'free':8A,77C,115C,194C 'freed':45B,59B,93C,177C 'get':54B 'grace':121C,141C,161C,187C,235C,249C 'hold':238C 'id':180C,224C 'ignor':214C 'instead':189C 'invalid':226C 'irq':191C,245C 'kernel':2A,21B,64C 'linux':1A,20B,63C 'linux-kernel':19B 'list':104C,138C,208C 'lock':139C,209C,221C 'look':172C 'memori':60B 'new':216C 'node':134C 'noth':255C 'pend':151C,183C 'per':132C,205C 'per-cpu':131C,204C 'period':122C,142C,162C,188C,236C,250C 'queue':12A,40B 'rcu':112C 'read':36B,57B,91C,175C 'reader':145C 'reenq':213C 'reenqueu':28B,86C,89C 'request':29B,97C,167C,184C,201C,217C,240C 'resolv':70C 'right':168C 'run':106C,152C,155C,229C,243C 'runtim':22B 'sched':3A,24B,32B,71C 'sched-ext':23B 'schedul':34B,211C 'sourc':47B 'start':158C,232C 'state':50B 'stay':98C 'take':108C 'touch':256C 'unlink':197C 'use':6A,75C 'use-after-fre':5A,74C 'user':11A,38B,81C,94C 'vulner':67C 'wait':143C,251C 'without':135C 'work':192C","nicknames":[],"mitigations":[],"who_affected":null,"tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-28T11:17:34+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-99144","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-99144","severity":null,"published_at":"2026-10-28T11:17:34+00:00","modified_at":"2026-10-28T11:17:34+00:00","first_seen_at":"2026-10-28T11:32:35+00:00","fetched_at":"2026-10-28T11:32:35+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"}