---
id: CVE-2026-98463
title: 'sched_ext: Derive SCX_RQ_IN_WAKEUP from the core enqueue flags'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  sched_ext: Derive SCX_RQ_IN_WAKEUP from the core enqueue flags

  schedule_deferred_locked() skips scheduling a deferred action while
  SCX_RQ_IN_WAKEUP is set and relies o…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 997967adf10ce26c3e7bd89598b3ded62b943052 <
    6c401ae426e20e53a3398a8e79afd0964c0f5110
  - >-
    Linux >= 57ccf5ccdc56954f2a91a7f66684fd31c566bde5 <
    3fdf2ceb31e8aff77451e468bc8409e10587916a
  - >-
    Linux >= 57ccf5ccdc56954f2a91a7f66684fd31c566bde5 <
    df5cdc2c832ca4e8a6d774596b9005558761a403
  - Linux ee502c056c4c9cce4c132ccb588e06ffe5b831c1
  - Linux >= 6.18.19 < 6.18.55
  - Linux >= 6.19.9 < 6.20
  - Linux 7.0
published: '2026-10-18'
updated: '2026-10-18'
sourceUpdated: '2026-10-18T15:15:15.775Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-98463'
references:
  - url: 'https://git.kernel.org/stable/c/6c401ae426e20e53a3398a8e79afd0964c0f5110'
  - url: 'https://git.kernel.org/stable/c/3fdf2ceb31e8aff77451e468bc8409e10587916a'
  - url: 'https://git.kernel.org/stable/c/df5cdc2c832ca4e8a6d774596b9005558761a403'
tags:
  - cve.org
ingestedAt: '2026-10-18T15:45:12.300Z'
---

## Overview

In the Linux kernel, the following vulnerability has been resolved:

sched_ext: Derive SCX_RQ_IN_WAKEUP from the core enqueue flags

schedule_deferred_locked() skips scheduling a deferred action while
SCX_RQ_IN_WAKEUP is set and relies on the task_woken_scx() call that follows
a wakeup enqueue to run it. enqueue_task_scx() sets the flag from the merged
enqueue flags, which include the flags stashed for a remote activation.
move_remote_task_to_local_dsq() thus sets SCX_RQ_IN_WAKEUP on the
destination rq when the moved task was woken up, although no
task_woken_scx() follows that activation.

An IMMED insert into a busy destination requests a local reenqueue during
that enqueue. The request gets linked but not scheduled and stays pending
until an unrelated wakeup or preemption on that CPU runs the deferred
actions. The IMMED task sits behind the running task in the meantime. If
nothing runs them before the scheduler is disabled, the request outlives the
scheduler and points into its freed per-cpu area, which the next scheduler
dereferences from run_deferred().

Test the core enqueue flags for the wakeup bit. Only the core's wakeup path
is followed by task_woken_scx().

## Affected

- `Linux >= 997967adf10ce26c3e7bd89598b3ded62b943052 < 6c401ae426e20e53a3398a8e79afd0964c0f5110`
- `Linux >= 57ccf5ccdc56954f2a91a7f66684fd31c566bde5 < 3fdf2ceb31e8aff77451e468bc8409e10587916a`
- `Linux >= 57ccf5ccdc56954f2a91a7f66684fd31c566bde5 < df5cdc2c832ca4e8a6d774596b9005558761a403`
- `Linux ee502c056c4c9cce4c132ccb588e06ffe5b831c1`
- `Linux >= 6.18.19 < 6.18.55`
- `Linux >= 6.19.9 < 6.20`
- `Linux 7.0`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
