MEDIUM 5.5

CVE-2026-53328: Linux Kernel Sched_ext False Warning on NULL cgrp_moving_from

A logic error in the Linux kernel's scheduler extension (sched_ext) subsystem triggers a spurious warning when the systemd user manager modifies control groups while a sched_ext scheduler is running. The warning fires during legitimate internal kernel operations and does not represent an exploitable security flaw—rather, it's a false alarm that can confuse operators and trigger monitoring alerts. The underlying issue stems from a mismatch between how the kernel tracks cgroup and css (control group subsystem) identities during task migration.

Source data · NVD / CISA · public domain

CVSS
3.1 · 5.5 MEDIUM · CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Weaknesses (CWE)
Affected products
7 configuration(s)
Published / Modified
2026-07-01 / 2026-07-23

NVD description (verbatim)

In the Linux kernel, the following vulnerability has been resolved: sched_ext: Don't warn on NULL cgrp_moving_from in scx_cgroup_move_task() A WARN fires when systemd's user manager writes "+cpu +memory +pids" to its own subtree_control while a sched_ext scheduler is loaded: WARNING: at kernel/sched/ext.c:3227 scx_cgroup_move_task+0xa8/0xb0 scx_cgroup_move_task+0xa8/0xb0 sched_move_task+0x134/0x290 cpu_cgroup_attach+0x39/0x70 cgroup_migrate_execute+0x37d/0x450 cgroup_update_dfl_csses+0x1e3/0x270 cgroup_subtree_control_write+0x3e7/0x440 scx_cgroup_can_attach() arms cgrp_moving_from only when a task's cpu cgroup changes. It can still be NULL when scx_cgroup_move_task() runs, through this sequence: Step Result --------------------------------- ---------------------------------- 1. cpu enabled on cgroup G cpu css = A 2. cpu toggled off then on for G A killed, B created (same cgroup) 3. an exiting task keeps A alive migration skips it, A now stale 4. +memory migrates G stale A vs current B pulls cpu in 5. cpu attach runs for all tasks hits a live, cpu-unchanged task 6. scx_cgroup_move_task() on it cgrp_moving_from NULL -> WARN The mismatch is that scx_cgroup_can_attach() keys on cgroup identity while migration drives the move on css identity, so a NULL cgrp_moving_from here is a legitimate css-only migration, not a missing prep. The call is already gated on cgrp_moving_from, so just drop the warning. ops.cgroup_prep_move() and ops.cgroup_move() stay paired.

4 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

CVE-2026-53328 affects the scx_cgroup_move_task() function in kernel/sched/ext.c. When a cgroup's subsystems are toggled (cpu disabled then re-enabled), the kernel creates a new css (control group subsystem instance) for that cgroup. If a task exits while still holding a reference to the old css, and then a later operation (such as enabling memory control) triggers a global cgroup migration, the scx_cgroup_move_task() function may encounter a NULL cgrp_moving_from value. This occurs because scx_cgroup_can_attach() only sets cgrp_moving_from when a task's cgroup identity changes, but css identity changes can occur independently. The NULL check at line 3227 unconditionally warns, even though a NULL value here is a valid css-only migration scenario. The fix removes the spurious WARN macro, as the call site is already guarded by a conditional that prevents NULL dereferences.

Business impact

This vulnerability presents minimal direct business risk; it does not enable privilege escalation, data theft, or system compromise. Its primary impact is operational: false-positive warnings in kernel logs can trigger monitoring systems, generate alert fatigue, and consume security team attention. Organizations running sched_ext schedulers (a relatively specialized use case) may experience log noise and misdiagnosis of system health. The fix is a one-line removal of a diagnostic warning, making remediation straightforward and low-risk.

Affected systems

The vulnerability affects the Linux kernel across multiple releases that include sched_ext support. sched_ext is a framework for custom CPU schedulers and is available in recent stable kernels and distributions that have opted to enable it. The issue is triggered specifically when (1) a sched_ext scheduler is loaded, (2) systemd's user manager modifies cgroup subsystem controls (a routine operation), and (3) the cpu cgroup subsystem is toggled on the affected cgroup. Most production Linux systems do not run sched_ext by default, limiting real-world exposure.

Exploitability

This is not exploitable in the traditional sense. It does not enable an attacker to gain unauthorized access, escalate privileges, corrupt data, or achieve code execution. The warning is triggered by legitimate kernel internal operations. An attacker with the ability to manipulate cgroups locally could generate the warning artificially, but this would only cause log noise, not system compromise. The vulnerability is best classified as a logic defect rather than a security vulnerability, though the CVSS 5.5 MEDIUM rating acknowledges the availability concern (filling logs, potential DoS if log space is constrained).

Remediation

Remove the WARN macro from scx_cgroup_move_task() when cgrp_moving_from is NULL. This requires a kernel rebuild and reboot. The fix is minimal and does not alter the function's correctness—it only removes an inappropriate diagnostic that fires on a valid code path. The function's call site already performs the necessary NULL check, so removing the warning is safe and aligns the code with the intended behavior.

Patch guidance

Verify against the vendor advisory or Linux kernel stable tree for the exact patch commit. The fix involves kernel/sched/ext.c, specifically removing or gating the WARN at or near line 3227. Affected kernel versions should be confirmed by checking the Linux kernel security advisories or the stable release notes. Most users should wait for their distribution's packaged kernel update rather than building from source. If your organization runs a custom sched_ext scheduler, coordinate patching with any downstream dependencies.

Detection guidance

Monitor kernel logs for repeated warnings matching the pattern "WARNING: at kernel/sched/ext.c:3227 scx_cgroup_move_task". If you see this warning but no actual task migration failures or system instability, the warning itself is the defect—not evidence of a separate underlying problem. Once patched, the warning should disappear from logs. Confirming absence of the warning after patching is the best indicator of successful remediation. Organizations not using sched_ext can safely ignore this issue.

Why prioritize this

Although rated MEDIUM (5.5 CVSS), this should be a low-priority patch for most organizations because (1) sched_ext is not enabled in typical production kernels, (2) the vulnerability does not enable exploitation or data loss, and (3) the only impact is false-positive log warnings. Prioritize this only if you explicitly use sched_ext schedulers and the log noise is creating alert fatigue or consuming significant disk space. For general infrastructure, defer this patch until the next routine kernel maintenance window.

Risk score, explained

The CVSS 5.5 MEDIUM score reflects an availability concern (AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H). A local user with standard privileges can trigger the warning repeatedly, potentially filling log buffers and degrading system observability. However, the impact is confined to log pollution and does not affect data confidentiality or integrity. The scoring appropriately penalizes the flaw for operational nuisance but correctly excludes it from high-risk categories reserved for direct system compromise.

Frequently asked questions

Do I need to patch this immediately?

No. If you don't use sched_ext schedulers, this does not affect you. If you do use sched_ext and are not seeing spurious warnings in your logs, patching can be deferred to your next scheduled maintenance window. Only prioritize this if the warning is creating operational noise.

Can this vulnerability be exploited remotely?

No. The vulnerability requires local access and the ability to manipulate cgroups, plus the presence of a running sched_ext scheduler. It is purely a local operational issue that does not enable code execution or privilege escalation.

What is sched_ext and do I have it enabled?

sched_ext is a kernel framework for building custom CPU schedulers. It is not enabled by default in most distributions. Check your kernel config: if CONFIG_SCHED_EXT is not set or not enabled, you are not affected. If in doubt, contact your kernel vendor or distribution maintainer.

If I see this warning, what does it mean?

It is a false alarm. The warning fires during legitimate kernel operations when cgroup subsystems are toggled while a sched_ext scheduler is running. It does not indicate data corruption, security breach, or task migration failure. After patching, the warning will no longer appear.

This analysis is based on the vulnerability description and CVSS scoring provided and is current as of the publication date. Patch versions, affected kernel releases, and vendor advisory links are not included in this summary; verify those details against the Linux kernel security announcements or your distribution's advisory channels. The absence of a CVE entry in the CISA KEV catalog does not indicate the vulnerability is unimportant; it reflects the lack of active in-the-wild exploitation and the limited real-world exposure of sched_ext schedulers. Recommendations should be adapted to your specific environment, kernel configuration, and risk tolerance. Security professionals should always test patches in non-production environments before deploying to production systems. Source: NVD (public-domain), retrieved 2026-08-10. Analysis generated by SEC.co (claude-haiku-4-5).