{"id":"CVE-2026-98463","kind":"vulnerability","aliases":["CVE-2026-98463"],"related":[],"title":"Linux kernel: sched_ext wakeup flag bug leaves stale reenqueue, crashes scheduler","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nsched_ext: Derive SCX_RQ_IN_WAKEUP from the core enqueue flags\n\nschedule_deferred_locked() skips scheduling a deferred action while\nSCX_RQ_IN_WAKEUP is set and relies on the task_woken_scx() call that follows\na wakeup enqueue to run it. enqueue_task_scx() sets the flag from the merged\nenqueue flags, which include the flags stashed for a remote activation.\nmove_remote_task_to_local_dsq() thus sets SCX_RQ_IN_WAKEUP on the\ndestination rq when the moved task was woken up, although no\ntask_woken_scx() follows that activation.\n\nAn IMMED insert into a busy destination requests a local reenqueue during\nthat enqueue. The request gets linked but not scheduled and stays pending\nuntil an unrelated wakeup or preemption on that CPU runs the deferred\nactions. The IMMED task sits behind the running task in the meantime. If\nnothing runs them before the scheduler is disabled, the request outlives the\nscheduler and points into its freed per-cpu area, which the next scheduler\ndereferences from run_deferred().\n\nTest the core enqueue flags for the wakeup bit. Only the core's wakeup path\nis followed by task_woken_scx().","summary":"A sched_ext scheduler bug in the Linux kernel leaves a deferred reenqueue request pending after a remote task move. The stale request can point into freed per-cpu memory when the scheduler is disabled, which the next scheduler dereferences.","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-18T16:16:56+00:00","first_seen_at":"2026-10-23T21:57:15+00:00","triaged_at":"2026-10-25T05:27:12+00:00","updated_at":"2026-10-25T05:27:12+00:00","category":"runtime","confidence":0.4,"triage":{"at":"2026-10-25T05:27:12Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"local","title":"Linux kernel: sched_ext wakeup flag bug leaves stale reenqueue, crashes scheduler","impact":"medium","summary":"A sched_ext scheduler bug in the Linux kernel leaves a deferred reenqueue request pending after a remote task move. The stale request can point into freed per-cpu memory when the scheduler is disabled, which the next scheduler dereferences.","category":"runtime","nicknames":[],"who_cares":["linux","kernel","sched-ext"],"confidence":0.4,"needs_auth":"unknown","worst_case":"kernel memory use-after-free when the scheduler is switched","analyst_note":"Check the upstream kernel fix commit and the NVD entry for affected kernel versions and whether sched_ext is enabled in default configs.","how_to_check":"unknown","needs_analyst":true,"not_affected_if":[],"who_is_affected":"unknown","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"unknown"},"cost_usd":0.000551,"input_tokens":3672,"output_tokens":367,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-2026':14A,17A '-98463':15A,18A 'action':95C,206C 'activ':138C,169C 'although':162C 'area':240C 'behind':211C 'bit':257C 'bug':7A,29B 'busi':175C 'call':110C 'core':85C,251C,260C 'cpu':54B,202C,239C 'crash':11A 'cve':13A,16A 'defer':36B,89C,94C,205C,248C 'derefer':65B,245C 'deriv':78C 'destin':153C,176C 'disabl':60B,226C 'dsq':144C 'enqueu':86C,115C,119C,128C,183C,252C 'ext':4A,24B,27B,77C 'flag':6A,87C,124C,129C,133C,253C 'follow':71C,112C,167C,265C 'freed':51B,236C 'get':186C 'im':171C,208C 'includ':131C 'insert':172C 'kernel':2A,19B,33B,69C 'leav':8A,34B 'link':187C 'linux':1A,20B,32B,68C 'local':143C,179C 'lock':90C 'meantim':217C 'memori':55B 'merg':127C 'move':44B,139C,157C 'next':63B,243C 'noth':219C 'outliv':229C 'path':263C 'pend':39B,193C 'per':53B,238C 'per-cpu':52B,237C 'point':49B,233C 'preemption':199C 'reenqueu':10A,37B,180C 'reli':104C 'remot':42B,137C,140C 'request':38B,47B,177C,185C,228C 'resolv':75C 'rq':80C,98C,148C,154C 'run':117C,203C,213C,220C,247C 'runtim':21B 'sched':3A,23B,26B,76C 'sched-ext':22B 'schedul':12A,28B,58B,64B,88C,92C,190C,224C,231C,244C 'scx':79C,97C,109C,121C,147C,166C,269C 'set':102C,122C,146C 'sit':210C 'skip':91C 'stale':9A,46B 'stash':134C 'stay':192C 'task':43B,107C,120C,141C,158C,164C,209C,214C,267C 'test':249C 'thus':145C 'unrel':196C 'vulner':72C 'wakeup':5A,82C,100C,114C,150C,197C,256C,262C 'woken':108C,160C,165C,268C","nicknames":[],"mitigations":[],"who_affected":null,"tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-18T16:16:56+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-98463","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-98463","severity":null,"published_at":"2026-10-18T16:16:56+00:00","modified_at":"2026-10-19T10:18:55+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"}