CVE-2026-98536

CVE-2026-98536

published October 18, 2026

CVSS
—
EPSS
0%
Percentile
11.2
In the wild
Unconfirmed
What it is

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

writeback: report a Tasks-RCU quiescent state per cgwb drain pass

cleanup_offline_cgwbs_workfn() drains a dying cgwb by calling

cleanup_offline_cgwb() until it returns false, with a cond_resched()

between passes. On a CONFIG_PREEMPTION kernel that cond_resched() does

nothing: _cond_resched() is a plain "return 0", and under PREEMPT_DYNAMIC

the full and lazy modes disable it. Since commit 7dadeaa6e851 ("sched:

Further restrict the preemption modes") those are the only two models on

the architectures with PREEMPT_LAZY support, arm64 and x86 among them, so

the drain loop never reports a Tasks-RCU quiescent state.

A worker draining a cgwb with millions of attached inodes runs for

minutes. On a 6.18 arm64 host in lazy mode the cgwb worker drained one

dying cgroup's writeback domain for over 11 minutes. A BPF program unlink

(bpf_trampoline_unlink_prog -> bpf_trampoline_update ->

unregister_ftrace_direct -> ftrace_shutdown -> synchronize_rcu_tasks())

waited on that grace period while holding the trampoline mutex, 42 tasks

queued behind it in D state, and the hung task detector fired at 614 s and

panicked the host. Any BPF or ftrace detach during a long drain inherits

the drain's length.

Fix this by calling cond_resched_tasks_rcu_qs() so we do not stall out

anybody who calls sycnrhonize_rcu_tasks(). We put this in a do { } while

loop because if we have many small cgroups cleanup_offline_cgwb() will

return false and we will never call cond_resched_tasks_rcu_qs(), creating

the same problem.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00215 · 11.2th percentile
Published
2026-10-18T20:17Z
References (7)
EPSS history
Timeline
  • 20 OCT 03:34Z
    EPSS moved — → 0%
    epss
  • 18 OCT 15:18Z
    writeback: report a Tasks-RCU quiescent state per cgwb drain pass
    cvelistv5
  • 18 OCT 15:18Z
    writeback: report a Tasks-RCU quiescent state per cgwb drain pass
    cvelistv5