CVE-2022-48921
Linux Kernel Sched/Fair Null Pointer Dereference Vulnerability in Red Hat Enterprise Linux
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.
INFO
Published Date :
Aug. 22, 2024, 2:15 a.m.
Last Modified :
Sept. 12, 2024, 12:58 p.m.
Source :
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Remotely Exploitable :
No
Impact Score :
3.6
Exploitability Score :
1.0
References to Advisories, Solutions, and Tools
Here, you will find a curated list of external links that provide in-depth
information, practical solutions, and valuable tools related to
CVE-2022-48921
.
We scan GitHub repositories to detect new proof-of-concept exploits. Following list is a collection of public exploits and proof-of-concepts, which have been published on GitHub (sorted by the most recently updated).
Results are limited to the first 15 repositories due to potential performance issues.
The following list is the news that have been mention
CVE-2022-48921
vulnerability anywhere in the article.
The following table lists the changes that have been made to the
CVE-2022-48921
vulnerability over time.
Vulnerability history details can be useful for understanding the evolution of a vulnerability, and for identifying the most recent changes that may impact the vulnerability's severity, exploitability, or other characteristics.
-
Initial Analysis by [email protected]
Sep. 12, 2024
Action Type Old Value New Value Added CVSS V3.1 NIST AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H Changed Reference Type https://git.kernel.org/stable/c/13765de8148f71fa795e0a6607de37c49ea5915a No Types Assigned https://git.kernel.org/stable/c/13765de8148f71fa795e0a6607de37c49ea5915a Patch Changed Reference Type https://git.kernel.org/stable/c/589a954daab5e18399860b6c8ffaeaf79844eb20 No Types Assigned https://git.kernel.org/stable/c/589a954daab5e18399860b6c8ffaeaf79844eb20 Patch Changed Reference Type https://git.kernel.org/stable/c/8f317cd888059c59e2fa924bf4b0957cfa53f78e No Types Assigned https://git.kernel.org/stable/c/8f317cd888059c59e2fa924bf4b0957cfa53f78e Patch Changed Reference Type https://git.kernel.org/stable/c/e0bcd6b5779352aed88f2e538a82a39f1a7715bb No Types Assigned https://git.kernel.org/stable/c/e0bcd6b5779352aed88f2e538a82a39f1a7715bb Patch Added CWE NIST CWE-362 Added CPE Configuration OR *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 5.10.80 up to (excluding) 5.10.137 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 5.14.19 up to (excluding) 5.15 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 5.15.3 up to (excluding) 5.15.27 *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 5.16 up to (excluding) 5.16.13 *cpe:2.3:o:linux:linux_kernel:5.17:rc1:*:*:*:*:*:* *cpe:2.3:o:linux:linux_kernel:5.17:rc2:*:*:*:*:*:* *cpe:2.3:o:linux:linux_kernel:5.17:rc3:*:*:*:*:*:* -
CVE Received by 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Aug. 22, 2024
Action Type Old Value New Value Added 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. Added Reference kernel.org https://git.kernel.org/stable/c/8f317cd888059c59e2fa924bf4b0957cfa53f78e [No types assigned] Added Reference kernel.org https://git.kernel.org/stable/c/e0bcd6b5779352aed88f2e538a82a39f1a7715bb [No types assigned] Added Reference kernel.org https://git.kernel.org/stable/c/589a954daab5e18399860b6c8ffaeaf79844eb20 [No types assigned] Added Reference kernel.org https://git.kernel.org/stable/c/13765de8148f71fa795e0a6607de37c49ea5915a [No types assigned]
CWE - Common Weakness Enumeration
While CVE identifies
specific instances of vulnerabilities, CWE categorizes the common flaws or
weaknesses that can lead to vulnerabilities. CVE-2022-48921
is
associated with the following CWEs:
Common Attack Pattern Enumeration and Classification (CAPEC)
Common Attack Pattern Enumeration and Classification
(CAPEC)
stores attack patterns, which are descriptions of the common attributes and
approaches employed by adversaries to exploit the CVE-2022-48921
weaknesses.