CVE-2022-48950

Source
https://cve.org/CVERecord?id=CVE-2022-48950
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2022-48950.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2022-48950
Downstream
Published
2024-10-21T20:05:38Z
Modified
2026-08-12T03:30:17Z
Severity
  • 7.8 (High) CVSS_V3 - CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H CVSS Calculator
Summary
perf: Fix perf_pending_task() UaF
Details

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

perf: Fix perf_pending_task() UaF

Per syzbot it is possible for perf_pending_task() to run after the event is free()'d. There are two related but distinct cases:

  • the task_work was already queued before destroying the event;
  • destroying the event itself queues the task_work.

The first cannot be solved using task_work_cancel() since perf_release() itself might be called from a task_work (____fput), which means the current->task_works list is already empty and task_work_cancel() won't be able to find the perf_pending_task() entry.

The simplest alternative is extending the perf_event lifetime to cover the task_work.

The second is just silly, queueing a task_work while you know the event is going away makes no sense and is easily avoided by re-arranging how the event is marked STATE_DEAD and ensuring it goes through STATE_OFF on the way down.

Database specific
{
    "cna_assigner":  "Linux",
    "osv_generated_from":  "https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/48xxx/CVE-2022-48950.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
ca7b0a10287e2733bdafb01ef0d4038536625fe3
Fixed
8bffa95ac19ff27c8261904f89d36c7fcf215d59
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
078c12ccf1fb943cc18c84894c76113dc89e5975
Fixed
78e1317a174edbfd1182599bf76c092a2877672c
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
ca6c21327c6af02b7eec31ce4b9a740a18c6c13f
Fixed
517e6a301f34613bff24a8e35b5455884f2d83d8

Affected versions

v5.*
v5.15.77
v5.15.78
v5.15.79
v5.15.80
v5.15.81
v5.15.82
v5.15.83
v6.*
v6.0.10
v6.0.11
v6.0.12
v6.0.13
v6.0.7
v6.0.8
v6.0.9

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2022-48950.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
5.15.77
Fixed
5.15.84
Type
ECOSYSTEM
Events
Introduced
6.0.7
Fixed
6.0.14

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2022-48950.json"