{"id":"CVE-2026-99104","kind":"vulnerability","aliases":["CVE-2026-99104"],"related":[],"title":"Linux kernel: sched_ext bypass dispatch claim leaks, stalling sub-scheduler tasks","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nsched_ext: Fix the bypass dispatch claim for schedulers bypassed by an ancestor\n\nscx_bypass() claims bypass dispatch when the scheduler's depth goes from\nzero to one and releases it when the depth returns to zero, but propagates\nonly the depth to the descendants, not the claim. A descendant that starts\nbypassing with its ancestor never claims, and one whose own bypass ends\nunder the ancestor's keeps its claim, as its depth does not return to zero.\n\nA sub-scheduler enable whose bypass ends under a PM suspend thus leaks its\nclaim: the parent keeps hosting bypass dispatch and the sub-scheduler's next\nbypass trips the WARN_ON_ONCE() on the claim. A sub-scheduler disable that\nstarts under a PM suspend has no claim, so once the resume lifts the root's\nbypass its tasks sit on the parent's bypass DSQs with nobody consuming them.\n\nClaim for every descendant whose depth goes from zero to one in the\npropagation and release every scheduler in the subtree whose depth returned\nto zero once the tasks have moved out of the bypass DSQs. A parent that is\nbypassing itself when a descendant claims consumes only its own bypass DSQs,\nempty until it leaves bypass and becomes the host.","summary":"In the Linux kernel's sched_ext scheduler, a sub-scheduler that is bypassed under an ancestor can keep or never take its bypass dispatch claim, which trips a WARN_ON_ONCE and can leave tasks stuck on bypass queues. The sources describe a reliability and kernel-warning failure rather than a demonstrated way for an attacker to run code.","severity":"unknown","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["kernel","linux","runtime","sched-ext"],"not_affected_if":[],"how_to_check":null,"fix":null,"status":"open","published_at":"2026-10-28T11:17:29+00:00","first_seen_at":"2026-10-28T11:32:34+00:00","triaged_at":"2026-10-28T11:37:50+00:00","updated_at":"2026-10-28T11:37:50+00:00","category":"runtime","confidence":0.4,"triage":{"at":"2026-10-28T11:37:50Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"local","title":"Linux kernel: sched_ext bypass dispatch claim leaks, stalling sub-scheduler tasks","impact":"low","summary":"In the Linux kernel's sched_ext scheduler, a sub-scheduler that is bypassed under an ancestor can keep or never take its bypass dispatch claim, which trips a WARN_ON_ONCE and can leave tasks stuck on bypass queues. The sources describe a reliability and kernel-warning failure rather than a demonstrated way for an attacker to run code.","category":"runtime","nicknames":[],"who_cares":["linux","kernel","sched-ext"],"confidence":0.4,"needs_auth":"unknown","worst_case":"Stalled tasks and kernel warnings; attacker impact not stated","analyst_note":"Check the upstream kernel commit and NVD entry CVE-2026-99104 for affected kernel version ranges, the fixed stable releases, and whether any security impact beyond a kernel WARN and stalled tasks is stated.","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.00059,"input_tokens":3670,"output_tokens":446,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-2026':15A,18A '-99104':16A,19A 'ancestor':43B,110C,153C,164C 'attack':84B 'becom':309C 'bypass':5A,40B,50B,65B,102C,107C,112C,114C,150C,160C,183C,197C,206C,237C,245C,285C,291C,301C,307C 'claim':7A,52B,104C,113C,145C,155C,168C,192C,214C,228C,251C,296C 'code':87B 'consum':249C,297C 'cve':14A,17A 'demonstr':80B 'depth':120C,131C,139C,171C,256C,273C 'descend':142C,147C,254C,295C 'describ':69B 'disabl':219C 'dispatch':6A,51B,103C,115C,198C 'dsqs':246C,286C,302C 'empti':303C 'enabl':181C 'end':161C,184C 'everi':253C,267C 'ext':4A,25B,32B,99C 'failur':76B 'fix':100C 'follow':93C 'goe':121C,257C 'host':196C,311C 'keep':45B,166C,195C 'kernel':2A,20B,29B,74B,91C 'kernel-warn':73B 'leak':8A,190C 'leav':61B,306C 'lift':233C 'linux':1A,21B,28B,90C 'move':281C 'never':47B,154C 'next':205C 'nobodi':248C 'one':125C,157C,261C 'parent':194C,243C,288C 'pm':187C,224C 'propag':136C,264C 'queue':66B 'rather':77B 'releas':127C,266C 'reliabl':71B 'resolv':97C 'resum':232C 'return':132C,174C,274C 'root':235C 'run':86B 'runtim':22B 'sched':3A,24B,31B,98C 'sched-ext':23B 'schedul':12A,33B,37B,106C,118C,180C,203C,218C,268C 'scx':111C 'sit':240C 'sourc':68B 'stall':9A 'start':149C,221C 'stuck':63B 'sub':11A,36B,179C,202C,217C 'sub-schedul':10A,35B,178C,201C,216C 'subtre':271C 'suspend':188C,225C 'take':48B 'task':13A,62B,239C,279C 'thus':189C 'trip':54B,207C 'vulner':94C 'warn':56B,75B,209C 'way':81B 'whose':158C,182C,255C,272C 'zero':123C,134C,176C,259C,276C","nicknames":[],"mitigations":[],"who_affected":null,"tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-28T11:17:29+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-99104","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-99104","severity":null,"published_at":"2026-10-28T11:17:29+00:00","modified_at":"2026-10-28T11:17:29+00:00","first_seen_at":"2026-10-28T11:32:34+00:00","fetched_at":"2026-10-28T11:32:34+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"}