4.7
MEDIUM
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
Affected Products

The following products are affected by CVE-2022-48921 vulnerability. Even if cvefeed.io is aware of the exact versions of the products that are affected, the information is not represented in the table below.

ID Vendor Product Action
1 Linux linux_kernel
References to Advisories, Solutions, and Tools

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]
EPSS is a daily estimate of the probability of exploitation activity being observed over the next 30 days. Following chart shows the EPSS score history of the vulnerability.
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.

CVSS31 - Vulnerability Scoring System
Attack Vector
Attack Complexity
Privileges Required
User Interaction
Scope
Confidentiality
Integrity
Availability