Skip to main content

Boteraser | Website and Server Security Solutions

🛡️ CVE-2025-38234 — kernel

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

Description

sched/rt: Fix race in push_rt_task

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

sched/rt: Fix race in push_rt_task

Overview

========

When a CPU chooses to call push_rt_task and picks a task to push to

another CPU's runqueue then it will call find_lock_lowest_rq method

which would take a double lock on both CPUs' runqueues. If one of the

locks aren't readily available, it may lead to dropping the current

runqueue lock and reacquiring both the locks at once. During this window

it is possible that the task is already migrated and is running on some

other CPU. These cases are already handled. However, if the task is

migrated and has already been executed and another CPU is now trying to

wake it up (ttwu) such that it is queued again on the runqeue

(on_rq is 1) and also if the task was run by the same CPU, then the

current checks will pass even though the task was migrated out and is no

longer in the pushable tasks list.

Crashes

=======

This bug resulted in quite a few flavors of crashes triggering kernel

panics with various crash signatures such as assert failures, page

faults, null pointer dereferences, and queue corruption errors all

coming from scheduler itself.

Some of the crashes:

-> kernel BUG at kernel/sched/rt.c:1616! BUG_ON(idx >= MAX_RT_PRIO)

Call Trace:

? __die_body+0x1a/0x60

? die+0x2a/0x50

? do_trap+0x85/0x100

? pick_next_task_rt+0x6e/0x1d0

? do_error_trap+0x64/0xa0

? pick_next_task_rt+0x6e/0x1d0

? exc_invalid_op+0x4c/0x60

? pick_next_task_rt+0x6e/0x1d0

? asm_exc_invalid_op+0x12/0x20

? pick_next_task_rt+0x6e/0x1d0

__schedule+0x5cb/0x790

? update_ts_time_stats+0x55/0x70

schedule_idle+0x1e/0x40

do_idle+0x15e/0x200

cpu_startup_entry+0x19/0x20

start_secondary+0x117/0x160

secondary_startup_64_no_verify+0xb0/0xbb

-> BUG: kernel NULL pointer dereference, address: 00000000000000c0

Call Trace:

? __die_body+0x1a/0x60

? no_context+0x183/0x350

? __warn+0x8a/0xe0

? exc_page_fault+0x3d6/0x520

? asm_exc_page_fault+0x1e/0x30

? pick_next_task_rt+0xb5/0x1d0

? pick_next_task_rt+0x8c/0x1d0

__schedule+0x583/0x7e0

? update_ts_time_stats+0x55/0x70

schedule_idle+0x1e/0x40

do_idle+0x15e/0x200

cpu_startup_entry+0x19/0x20

start_secondary+0x117/0x160

secondary_startup_64_no_verify+0xb0/0xbb

-> BUG: unable to handle page fault for address: ffff9464daea5900

kernel BUG at kernel/sched/rt.c:1861! BUG_ON(rq->cpu != task_cpu(p))

-> kernel BUG at kernel/sched/rt.c:1055! BUG_ON(!rq->nr_running)

Call Trace:

? __die_body+0x1a/0x60

? die+0x2a/0x50

? do_trap+0x85/0x100

? dequeue_top_rt_rq+0xa2/0xb0

? do_error_trap+0x64/0xa0

? dequeue_top_rt_rq+0xa2/0xb0

? exc_invalid_op+0x4c/0x60

? dequeue_top_rt_rq+0xa2/0xb0

? asm_exc_invalid_op+0x12/0x20

? dequeue_top_rt_rq+0xa2/0xb0

dequeue_rt_entity+0x1f/0x70

dequeue_task_rt+0x2d/0x70

__schedule+0x1a8/0x7e0

? blk_finish_plug+0x25/0x40

schedule+0x3c/0xb0

futex_wait_queue_me+0xb6/0x120

futex_wait+0xd9/0x240

do_futex+0x344/0xa90

? get_mm_exe_file+0x30/0x60

? audit_exe_compare+0x58/0x70

? audit_filter_rules.constprop.26+0x65e/0x1220

__x64_sys_futex+0x148/0x1f0

do_syscall_64+0x30/0x80

entry_SYSCALL_64_after_hwframe+0x62/0xc7

-> BUG: unable to handle page fault for address: ffff8cf3608bc2c0

Call Trace:

? __die_body+0x1a/0x60

? no_context+0x183/0x350

? spurious_kernel_fault+0x171/0x1c0

? exc_page_fault+0x3b6/0x520

? plist_check_list+0x15/0x40

? plist_check_list+0x2e/0x40

? asm_exc_page_fault+0x1e/0x30

? _cond_resched+0x15/0x30

? futex_wait_queue_me+0xc8/0x120

? futex_wait+0xd9/0x240

? try_to_wake_up+0x1b8/0x490

? futex_wake+0x78/0x160

? do_futex+0xcd/0xa90

? plist_check_list+0x15/0x40

? plist_check_list+0x2e/0x40

? plist_del+0x6a/0xd0

? plist_check_list+0x15/0x40

? plist_check_list+0x2e/0x40

? dequeue_pushable_task+0x20/0x70

? __schedule+0x382/0x7e0

? asm_sysvec_reschedule_i

---truncated---

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.

Affected software

CVE-2025-38234 is recorded against 2 packages.

  • kernel (from 6.13.0 up to 6.15.4)
  • linux-kernel (fixed in 6.15.4)

Timeline and source

Published on 4 July 2025 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)
github.com (Advisory)
nvd.nist.gov (Advisory)
git.kernel.org (Package)

CVE-2025-38234 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 2025-07-04
Updated 2026-08-20
Modified 2026-08-12

Affected Packages

Software From version Fixed in
kernel 6.13.0 6.15.4
linux-kernel 6.15.4

Similar Threats

Site Security Check

Is kernel part of your stack?

CVE-2025-38234 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.