Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1310 CNY

100%

CVE-2025-38234— sched/rt: Fix race in push_rt_task

AI Predicted 5.5 Difficulty: Moderate EPSS 0.02% · P6

Affected Version Matrix 10

VendorProductVersion RangeStatus
LinuxLinuxe8fa136262e1121288bb93befe2295928ffd240d< 9f6022b2573ae068793810db719e131df3ded405affected
e8fa136262e1121288bb93befe2295928ffd240d< debfbc047196df1f6bfd52f2d028c21dce67f0deaffected
e8fa136262e1121288bb93befe2295928ffd240d< 07ecabfbca64f4f0b6071cf96e49d162fa9d138daffected
e8fa136262e1121288bb93befe2295928ffd240d< 690e47d1403e90b7f2366f03b52ed3304194c793affected
2.6.25affected
< 2.6.25unaffected
6.6.124≤ 6.6.*unaffected
6.12.64≤ 6.12.*unaffected
… +2 more rows
Get alerts for future matching vulnerabilitiesLog in to subscribe

I. Basic Information for CVE-2025-38234

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
sched/rt: Fix race in push_rt_task
Source: NVD (National Vulnerability Database)
Vulnerability Description
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---
Source: NVD (National Vulnerability Database)
CVSS Information
N/A
Source: NVD (National Vulnerability Database)
Vulnerability Type
N/A
Source: NVD (National Vulnerability Database)
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于push_rt_task中存在竞争条件,可能导致任务状态不一致。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

VendorProductAffected VersionsCPESubscribe
LinuxLinux e8fa136262e1121288bb93befe2295928ffd240d ~ 9f6022b2573ae068793810db719e131df3ded405 -
LinuxLinux 2.6.25 -

II. Public POCs for CVE-2025-38234

#POC DescriptionSource LinkShenlong Link
AI-Generated POCPremium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2025-38234

登录查看更多情报信息。

Other References for CVE-2025-38234 (1)

Same Patch Batch · Linux · 2025-07-04 · 59 CVEs total

CVE-2025-38215fbdev: Fix do_register_framebuffer to prevent null-ptr-deref in fb_videomode_to_var
CVE-2025-38227media: vidtv: Terminating the subsequent process of initialization failure
CVE-2025-38230jfs: validate AG parameters in dbMount() to prevent crashes
CVE-2025-38228media: imagination: fix a potential memory leak in e5010_probe()
CVE-2025-38229media: cxusb: no longer judge rbuf when the write fails
CVE-2025-38231nfsd: Initialize ssc before laundromat_work to prevent NULL dereference
CVE-2025-38219f2fs: prevent kernel warning due to negative i_nlink from corrupted image
CVE-2025-38218f2fs: fix to do sanity check on sit_bitmap_size
CVE-2025-38217hwmon: (ftsteutates) Fix TOCTOU race in fts_read()
CVE-2025-38216iommu/vt-d: Restore context entry setup order for aliased devices
CVE-2025-38221ext4: fix out of bounds punch offset
CVE-2025-38214fbdev: Fix fb_set_var to prevent null-ptr-deref in fb_videomode_to_var
CVE-2025-38212ipc: fix to protect IPCS lookups using RCU
CVE-2025-38211RDMA/iwcm: Fix use-after-free of work objects after cm_id destruction
CVE-2025-38210configfs-tsm-report: Fix NULL dereference of tsm_ops
CVE-2025-38209nvme-tcp: remove tag set when second admin queue config fails
CVE-2025-38208smb: client: add NULL check in automount_fullpath
CVE-2025-38207mm: fix uprobe pte be overwritten when expanding vma
CVE-2025-38206exfat: fix double free in delayed_free
CVE-2025-38205drm/amd/display: Avoid divide by zero by initializing dummy pitch to 1

Showing top 20 of 59 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2025-38234

No comments yet


Leave a comment