<?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>Sun, 04 Oct 2026 21:32:10 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-43392 — sched_ext: Fix starvation of scx_enable() under fair-class saturation</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-43392</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 starvation of scx_enable() under fair-class saturation&lt;/p&gt;
&lt;p&gt;During scx_enable(), the READY -&amp;gt; ENABLED task switching loop changes the
calling thread&amp;#39;s sched_class from fair to ext. Since fair has higher
priority than ext, saturating fair-class workloads can indefinitely starve
the enable thread, hanging the system. This was introduced when the enable
path switched from preempt_disable() to scx_bypass() which doesn&amp;#39;t protect
against fair-class starvation. Note that the original preempt_disable()
protection wasn&amp;#39;t complete either - in partial switch modes, the calling
thread could still be starved after preempt_enable() as it may have been
switched to ext class.&lt;/p&gt;
&lt;p&gt;Fix it by offloading the enable body to a dedicated system-wide RT
(SCHED_FIFO) kthread which cannot be starved by either fair or ext class
tasks. scx_enable() lazily creates the kthread on first use and passes the
ops pointer through a struct scx_enable_cmd containing the kthread_work,
then synchronously waits for completion.&lt;/p&gt;
&lt;p&gt;The workfn runs on a different kthread from sch-&amp;gt;helper (which runs
disable_work), so it can safely flush disable_work on the error path
without deadlock.&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 starvation of scx_enable() under fair-class saturation&lt;/p&gt;
&lt;p&gt;During scx_enable(), the READY -&amp;gt; ENABLED task switching loop changes the
calling thread&amp;#39;s sched_class from fair to ext. Since fair has higher
priority than ext, saturating fair-class workloads can indefinitely starve
the enable thread, hanging the system. This was introduced when the enable
path switched from preempt_disable() to scx_bypass() which doesn&amp;#39;t protect
against fair-class starvation. Note that the original preempt_disable()
protection wasn&amp;#39;t complete either - in partial switch modes, the calling
thread could still be starved after preempt_enable() as it may have been
switched to ext class.&lt;/p&gt;
&lt;p&gt;Fix it by offloading the enable body to a dedicated system-wide RT
(SCHED_FIFO) kthread which cannot be starved by either fair or ext class
tasks. scx_enable() lazily creates the kthread on first use and passes the
ops pointer through a struct scx_enable_cmd containing the kthread_work,
then synchronously waits for completion.&lt;/p&gt;
&lt;p&gt;The workfn runs on a different kthread from sch-&amp;gt;helper (which runs
disable_work), so it can safely flush disable_work on the error path
without deadlock.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-43392</guid>
    </item>
  </channel>
</rss>
