<?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>Thu, 01 Oct 2026 08:36:15 +0000</lastBuildDate>
    <item>
      <title>CVE-2025-37821 — sched/eevdf: Fix se-&gt;slice being set to U64_MAX and resulting crash</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2025-37821</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/eevdf: Fix se-&amp;gt;slice being set to U64_MAX and resulting crash&lt;/p&gt;
&lt;p&gt;There is a code path in dequeue_entities() that can set the slice of a
sched_entity to U64_MAX, which sometimes results in a crash.&lt;/p&gt;
&lt;p&gt;The offending case is when dequeue_entities() is called to dequeue a
delayed group entity, and then the entity&amp;#39;s parent&amp;#39;s dequeue is delayed.
In that case:&lt;/p&gt;
&lt;p&gt;1. In the if (entity_is_task(se)) else block at the beginning of
   dequeue_entities(), slice is set to
   cfs_rq_min_slice(group_cfs_rq(se)). If the entity was delayed, then
   it has no queued tasks, so cfs_rq_min_slice() returns U64_MAX.
2. The first for_each_sched_entity() loop dequeues the entity.
3. If the entity was its parent&amp;#39;s only child, then the next iteration
   tries to dequeue the parent.
4. If the parent&amp;#39;s dequeue needs to be delayed, then it breaks from the
   first for_each_sched_entity() loop _without updating slice_.
5. The second for_each_sched_entity() loop sets the parent&amp;#39;s -&amp;gt;slice to
   the saved slice, which is still U64_MAX.&lt;/p&gt;
&lt;p&gt;This throws off subsequent calculations with potentially catastrophic
results. A manifestation we saw in production was:&lt;/p&gt;
&lt;p&gt;6. In update_entity_lag(), se-&amp;gt;slice is used to calculate limit, which
   ends up as a huge negative number.
7. limit is used in se-&amp;gt;vlag = clamp(vlag, -limit, limit). Because limit
   is negative, vlag &amp;gt; limit, so se-&amp;gt;vlag is set to the same huge
   negative number.
8. In place_entity(),…&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/eevdf: Fix se-&amp;gt;slice being set to U64_MAX and resulting crash&lt;/p&gt;
&lt;p&gt;There is a code path in dequeue_entities() that can set the slice of a
sched_entity to U64_MAX, which sometimes results in a crash.&lt;/p&gt;
&lt;p&gt;The offending case is when dequeue_entities() is called to dequeue a
delayed group entity, and then the entity&amp;#39;s parent&amp;#39;s dequeue is delayed.
In that case:&lt;/p&gt;
&lt;p&gt;1. In the if (entity_is_task(se)) else block at the beginning of
   dequeue_entities(), slice is set to
   cfs_rq_min_slice(group_cfs_rq(se)). If the entity was delayed, then
   it has no queued tasks, so cfs_rq_min_slice() returns U64_MAX.
2. The first for_each_sched_entity() loop dequeues the entity.
3. If the entity was its parent&amp;#39;s only child, then the next iteration
   tries to dequeue the parent.
4. If the parent&amp;#39;s dequeue needs to be delayed, then it breaks from the
   first for_each_sched_entity() loop _without updating slice_.
5. The second for_each_sched_entity() loop sets the parent&amp;#39;s -&amp;gt;slice to
   the saved slice, which is still U64_MAX.&lt;/p&gt;
&lt;p&gt;This throws off subsequent calculations with potentially catastrophic
results. A manifestation we saw in production was:&lt;/p&gt;
&lt;p&gt;6. In update_entity_lag(), se-&amp;gt;slice is used to calculate limit, which
   ends up as a huge negative number.
7. limit is used in se-&amp;gt;vlag = clamp(vlag, -limit, limit). Because limit
   is negative, vlag &amp;gt; limit, so se-&amp;gt;vlag is set to the same huge
   negative number.
8. In place_entity(),…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2025-37821</guid>
    </item>
  </channel>
</rss>
