Skip to main content
← All vulnerabilities
CVE-2025-21919

sched/fair: Fix potential memory corruption in child_cfs_rq_on_list

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 5.15.179, 6.1.131, 6.6.83, 6.12.19, 6.13.7
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: none
  • Automatable: no
  • Technical impact: total

Summary

In the Linux kernel, the following vulnerability has been resolved: sched/fair: Fix potential memory corruption in child_cfs_rq_on_list child_cfs_rq_on_list attempts to convert a 'prev' pointer to a cfs_rq. This 'prev' pointer can originate from struct rq's leaf_cfs_rq_list, making the conversion invalid and potentially leading to memory corruption. Depending on the relative positions of leaf_cfs_rq_list and the task group (tg) pointer within the struct, this can cause a memory fault or access garbage data. The issue arises in list_add_leaf_cfs_rq, where both cfs_rq->leaf_cfs_rq_list and rq->leaf_cfs_rq_list are added to the same leaf list. Also, rq->tmp_alone_branch can be set to rq->leaf_cfs_rq_list. This adds a check `if (prev == &rq->leaf_cfs_rq_list)` after the main conditional in child_cfs_rq_on_list. This ensures that the container_of operation will convert a correct cfs_rq struct. This check is sufficient because only cfs_rqs on the same CPU are added to the list, so verifying the 'prev' pointer against the current rq's list head is enough. Fixes a potential memory corruption issue that due to current struct layout might not be manifesting as a crash but could lead to unpredictable behavior when the layout changes.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: none · Automatable: no · Technical impact: total

  3. Record last updated

Affected versions

  • Linux Linux

    From fdaba61ef8a268d4136d0a113d153f7a89eb9984 · fixed in 5cb300dcdd27e6a351ac02541e0231261c775852; From fdaba61ef8a268d4136d0a113d153f7a89eb9984 · fixed in 000c9ee43928f2ce68a156dd40bab7616256f4dd; From fdaba61ef8a268d4136d0a113d153f7a89eb9984 · fixed in 9cc7f0018609f75a349e42e3aebc3b0e905ba775; From fdaba61ef8a268d4136d0a113d153f7a89eb9984 · fixed in b5741e4b9ef3567613b2351384f91d3f16e59986; From fdaba61ef8a268d4136d0a113d153f7a89eb9984 · fixed in e1dd09df30ba86716cb2ffab97dc35195c01eb8f; From fdaba61ef8a268d4136d0a113d153f7a89eb9984 · fixed in 3b4035ddbfc8e4521f85569998a7569668cccf51

  • Linux Linux

    5.13

  • KernelLinux

    From 5.13.0 · fixed in 5.15.179; From 5.16.0 · fixed in 6.1.131; From 6.2.0 · fixed in 6.6.83; From 6.7.0 · fixed in 6.12.19; From 6.13.0 · fixed in 6.13.7

References 6

git.kernel.org