CVE-2022-48921

sched/fair: Fix fault in reweight_entity

State
Published
Severity
Not scored
Published
Aug 22, 2024
Updated
May 23, 2026
Reserved
Aug 21, 2024

Read the record on cve.org

Description

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

sched/fair: Fix fault in reweight_entity

Syzbot found a GPF in reweight_entity. This has been bisected to commit 4ef0c5c6b5ba ("kernel/sched: Fix sched_fork() access an invalid sched_task_group")

There is a race between sched_post_fork() and setpriority(PRIO_PGRP) within a thread group that causes a null-ptr-deref in reweight_entity() in CFS. The scenario is that the main process spawns number of new threads, which then call setpriority(PRIO_PGRP, 0, -20), wait, and exit. For each of the new threads the copy_process() gets invoked, which adds the new task_struct and calls sched_post_fork() for it.

In the above scenario there is a possibility that setpriority(PRIO_PGRP) and set_one_prio() will be called for a thread in the group that is just being created by copy_process(), and for which the sched_post_fork() has not been executed yet. This will trigger a null pointer dereference in reweight_entity(), as it will try to access the run queue pointer, which hasn't been set.

Before the mentioned change the cfs_rq pointer for the task has been set in sched_fork(), which is called much earlier in copy_process(), before the new task is added to the thread_group. Now it is done in the sched_post_fork(), which is called after that. To fix the issue the remove the update_load param from the update_load param() function and call reweight_task() only if the task flag doesn't have the TASK_NEW flag set.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • c85c6fadbef0a3eab41540ea628fa8fe8928c820 to before 8f317cd888059c59e2fa924bf4b0957cfa53f78eAffected
  • 3869eecf050416a1d19bac60926f6b5d64b0aa58 to before e0bcd6b5779352aed88f2e538a82a39f1a7715bbAffected
  • 4ef0c5c6b5ba1f38f0ea1cedad0cad722f00c14a to before 589a954daab5e18399860b6c8ffaeaf79844eb20Affected
  • 4ef0c5c6b5ba1f38f0ea1cedad0cad722f00c14a to before 13765de8148f71fa795e0a6607de37c49ea5915aAffected
  • 25d40b828fb855ee62e1039c65a666c9afd60786Affected
  • 5.10.80 to before 5.10.137Affected
  • 5.15.3 to before 5.15.27Affected
  • 5.14.19 to before 5.15Affected
LinuxLinux
  • 5.16Affected
  • before 5.16Not affected
  • 5.10.137 through 5.10.*Not affected
  • 5.15.27 through 5.15.*Not affected
  • 5.16.13 through 5.16.*Not affected
  • 5.17 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.