Skip to main content

Boteraser | Website and Server Security Solutions

🛡️ CVE-2023-52707 — kernel

🟠 CVSS 7.8 — High ✅ No Known Exploit NVD
7.8
CVSS Score
0 Low4 Medium7 High9 Critical10

Description

sched/psi: Fix use-after-free in ep_remove_wait_queue()

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

sched/psi: Fix use-after-free in ep_remove_wait_queue()

If a non-root cgroup gets removed when there is a thread that registered

trigger and is polling on a pressure file within the cgroup, the polling

waitqueue gets freed in the following path:

do_rmdir

cgroup_rmdir

kernfs_drain_open_files

cgroup_file_release

cgroup_pressure_release

psi_trigger_destroy

However, the polling thread still has a reference to the pressure file and

will access the freed waitqueue when the file is closed or upon exit:

fput

ep_eventpoll_release

ep_free

ep_remove_wait_queue

remove_wait_queue

This results in use-after-free as pasted below.

The fundamental problem here is that cgroup_file_release() (and

consequently waitqueue's lifetime) is not tied to the file's real lifetime.

Using wake_up_pollfree() here might be less than ideal, but it is in line

with the comment at commit 42288cb44c4b ("wait: add wake_up_pollfree()")

since the waitqueue's lifetime is not tied to file's one and can be

considered as another special case. While this would be fixable by somehow

making cgroup_file_release() be tied to the fput(), it would require

sizable refactoring at cgroups or higher layer which might be more

justifiable if we identify more cases like this.

BUG: KASAN: use-after-free in _raw_spin_lock_irqsave+0x60/0xc0

Write of size 4 at addr ffff88810e625328 by task a.out/4404

CPU: 19 PID: 4404 Comm: a.out Not tainted 6.2.0-rc6 #38

Hardware name: Amazon EC2 c5a.8xlarge/, BIOS 1.0 10/16/2017

Call Trace:

<TASK>

dump_stack_lvl+0x73/0xa0

print_report+0x16c/0x4e0

kasan_report+0xc3/0xf0

kasan_check_range+0x2d2/0x310

_raw_spin_lock_irqsave+0x60/0xc0

remove_wait_queue+0x1a/0xa0

ep_free+0x12c/0x170

ep_eventpoll_release+0x26/0x30

__fput+0x202/0x400

task_work_run+0x11d/0x170

do_exit+0x495/0x1130

do_group_exit+0x100/0x100

get_signal+0xd67/0xde0

arch_do_signal_or_restart+0x2a/0x2b0

exit_to_user_mode_prepare+0x94/0x100

syscall_exit_to_user_mode+0x20/0x40

do_syscall_64+0x52/0x90

entry_SYSCALL_64_after_hwframe+0x63/0xcd

</TASK>

Allocated by task 4404:

kasan_set_track+0x3d/0x60

__kasan_kmalloc+0x85/0x90

psi_trigger_create+0x113/0x3e0

pressure_write+0x146/0x2e0

cgroup_file_write+0x11c/0x250

kernfs_fop_write_iter+0x186/0x220

vfs_write+0x3d8/0x5c0

ksys_write+0x90/0x110

do_syscall_64+0x43/0x90

entry_SYSCALL_64_after_hwframe+0x63/0xcd

Freed by task 4407:

kasan_set_track+0x3d/0x60

kasan_save_free_info+0x27/0x40

____kasan_slab_free+0x11d/0x170

slab_free_freelist_hook+0x87/0x150

__kmem_cache_free+0xcb/0x180

psi_trigger_destroy+0x2e8/0x310

cgroup_file_release+0x4f/0xb0

kernfs_drain_open_files+0x165/0x1f0

kernfs_drain+0x162/0x1a0

__kernfs_remove+0x1fb/0x310

kernfs_remove_by_name_ns+0x95/0xe0

cgroup_addrm_files+0x67f/0x700

cgroup_destroy_locked+0x283/0x3c0

cgroup_rmdir+0x29/0x100

kernfs_iop_rmdir+0xd1/0x140

vfs_rmdir+0xfe/0x240

do_rmdir+0x13d/0x280

__x64_sys_rmdir+0x2c/0x30

do_syscall_64+0x43/0x90

entry_SYSCALL_64_after_hwframe+0x63/0xcd

How this vulnerability can be exploited

This issue can be reached with local access to the system, attack complexity is low, an attacker needs low-level privileges on the target. No user interaction is required. The scope is unchanged, so the impact stays within the vulnerable component. Rated impact: confidentiality high, integrity high, availability high.

CVSS metrics in full

The score comes from this vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

  • Attack vector: Local — a local account, shell or session on the host is needed.
  • Attack complexity: Low — the attack works reliably, with no preparation.
  • Privileges required: Low — an ordinary user account is enough.
  • User interaction: None — nobody has to be tricked into anything.
  • Scope: Unchanged — the damage stays inside the vulnerable component.
  • Confidentiality impact: High — total loss, or loss the attacker controls.
  • Integrity impact: High — total loss, or loss the attacker controls.
  • Availability impact: High — total loss, or loss the attacker controls.

Affected software

CVE-2023-52707 is recorded against 2 packages.

  • kernel (from 5.16.0 up to 6.1.13)
  • linux-kernel

Timeline and source

Published on 21 May 2024 and last revised on 12 August 2026. No public exploit is currently recorded for this entry. A vendor advisory or fix has been published. Record sourced from NVD.

References

git.kernel.org (Web)
git.kernel.org (Web)
git.kernel.org (Web)
git.kernel.org (Web)
git.kernel.org (Web)
github.com (Advisory)
nvd.nist.gov (Advisory)
git.kernel.org (Package)

Other advisories for this package

kernel has other advisories on record. If you are patching this one, these are worth checking on the same host:

CVE-2023-52707 on other distributions

Each distribution ships its own build and its own fixed version. Pick the one you run:

Details

Severity High
CVSS Score 7.8
CVSS Vector CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CWE N/A
Public Exploit ✅ No
Source NVD
Published 2024-05-21
Updated 2026-08-20
Modified 2026-08-12

Affected Packages

Software From version Fixed in
kernel 5.16.0 6.1.13
linux-kernel — —

Similar Threats

Site Security Check

Is kernel part of your stack?

CVE-2023-52707 is rated CVSS 7.8 High. BotEraser scans your installation against known CVE records and tells you whether this vulnerability applies to the versions you actually run.

Scan My Site Free →

No credit card required  ·  Results in minutes

ⓘ Data Notice: The information presented above has been compiled from publicly available internet sources. Boteraser aggregates this data solely for informational purposes and does not independently classify, evaluate, or endorse any findings about the vulnerabilities listed. The accuracy and completeness of this information is the sole responsibility of the original publishers. Boteraser and its operators accept no liability for any decisions made based on this data.

Browse related advisories

All advisoriesCVECVE 2023
✓