<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://vulnerability.circl.lu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Tue, 29 Sep 2026 16:00:34 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-31733 — sched_ext: Fix stale direct dispatch state in ddsp_dsq_id</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-31733</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;sched_ext: Fix stale direct dispatch state in ddsp_dsq_id&lt;/p&gt;
&lt;p&gt;@p-&amp;gt;scx.ddsp_dsq_id can be left set (non-SCX_DSQ_INVALID) triggering a
spurious warning in mark_direct_dispatch() when the next wakeup&amp;#39;s
ops.select_cpu() calls scx_bpf_dsq_insert(), such as:&lt;/p&gt;
&lt;p&gt;WARNING: kernel/sched/ext.c:1273 at scx_dsq_insert_commit+0xcd/0x140&lt;/p&gt;
&lt;p&gt;The root cause is that ddsp_dsq_id was only cleared in dispatch_enqueue(),
which is not reached in all paths that consume or cancel a direct dispatch
verdict.&lt;/p&gt;
&lt;p&gt;Fix it by clearing it at the right places:&lt;/p&gt;
&lt;p&gt;- direct_dispatch(): cache the direct dispatch state in local variables
   and clear it before dispatch_enqueue() on the synchronous path. For
   the deferred path, the direct dispatch state must remain set until
   process_ddsp_deferred_locals() consumes them.&lt;/p&gt;
&lt;p&gt;- process_ddsp_deferred_locals(): cache the dispatch state in local
   variables and clear it before calling dispatch_to_local_dsq(), which
   may migrate the task to another rq.&lt;/p&gt;
&lt;p&gt;- do_enqueue_task(): clear the dispatch state on the enqueue path
   (local/global/bypass fallbacks), where the direct dispatch verdict is
   ignored.&lt;/p&gt;
&lt;p&gt;- dequeue_task_scx(): clear the dispatch state after dispatch_dequeue()
   to handle both the deferred dispatch cancellation and the holding_cpu
   race, covering all cases where a pending direct dispatch is
   cancelled.&lt;/p&gt;
&lt;p&gt;- scx_disable_task(): clear the direct dispatch state when
   transitioning a tas…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;sched_ext: Fix stale direct dispatch state in ddsp_dsq_id&lt;/p&gt;
&lt;p&gt;@p-&amp;gt;scx.ddsp_dsq_id can be left set (non-SCX_DSQ_INVALID) triggering a
spurious warning in mark_direct_dispatch() when the next wakeup&amp;#39;s
ops.select_cpu() calls scx_bpf_dsq_insert(), such as:&lt;/p&gt;
&lt;p&gt;WARNING: kernel/sched/ext.c:1273 at scx_dsq_insert_commit+0xcd/0x140&lt;/p&gt;
&lt;p&gt;The root cause is that ddsp_dsq_id was only cleared in dispatch_enqueue(),
which is not reached in all paths that consume or cancel a direct dispatch
verdict.&lt;/p&gt;
&lt;p&gt;Fix it by clearing it at the right places:&lt;/p&gt;
&lt;p&gt;- direct_dispatch(): cache the direct dispatch state in local variables
   and clear it before dispatch_enqueue() on the synchronous path. For
   the deferred path, the direct dispatch state must remain set until
   process_ddsp_deferred_locals() consumes them.&lt;/p&gt;
&lt;p&gt;- process_ddsp_deferred_locals(): cache the dispatch state in local
   variables and clear it before calling dispatch_to_local_dsq(), which
   may migrate the task to another rq.&lt;/p&gt;
&lt;p&gt;- do_enqueue_task(): clear the dispatch state on the enqueue path
   (local/global/bypass fallbacks), where the direct dispatch verdict is
   ignored.&lt;/p&gt;
&lt;p&gt;- dequeue_task_scx(): clear the dispatch state after dispatch_dequeue()
   to handle both the deferred dispatch cancellation and the holding_cpu
   race, covering all cases where a pending direct dispatch is
   cancelled.&lt;/p&gt;
&lt;p&gt;- scx_disable_task(): clear the direct dispatch state when
   transitioning a tas…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-31733</guid>
    </item>
  </channel>
</rss>
