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

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2025-38170— arm64/fpsimd: Discard stale CPU state when handling SME traps

Quick assessment

Affected
Linux Linux
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于状态处理不当,可能导致竞争条件。

AI Predicted 5.5 Difficulty: Hard EPSS 0.17% · P6

Affected Version Matrix 12

VendorProduct Version RangeStatus
Linux Linux 8bd7f91c03d886f41d35f6108078d20be5a4a1bd< de89368de3894a8db27caeb8fd902ba1c49f696a affected
8bd7f91c03d886f41d35f6108078d20be5a4a1bd< 43be952e885476dafb74aa832c0847b2f4f650c6 affected
8bd7f91c03d886f41d35f6108078d20be5a4a1bd< 6103f9ba51a59afb5a0f32299c837377c5a5a693 affected
8bd7f91c03d886f41d35f6108078d20be5a4a1bd< c4a4786d93e99517d6f10ed56b9ffba4ce88d3b3 affected
8bd7f91c03d886f41d35f6108078d20be5a4a1bd< d3eaab3c70905c5467e5c4ea403053d67505adeb affected
5.19 affected
< 5.19 unaffected
6.1.142≤ 6.1.* unaffected
… +4 more rows
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2025-38170

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
arm64/fpsimd: Discard stale CPU state when handling SME traps
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: arm64/fpsimd: Discard stale CPU state when handling SME traps The logic for handling SME traps manipulates saved FPSIMD/SVE/SME state incorrectly, and a race with preemption can result in a task having TIF_SME set and TIF_FOREIGN_FPSTATE clear even though the live CPU state is stale (e.g. with SME traps enabled). This can result in warnings from do_sme_acc() where SME traps are not expected while TIF_SME is set: | /* With TIF_SME userspace shouldn't generate any traps */ | if (test_and_set_thread_flag(TIF_SME)) | WARN_ON(1); This is very similar to the SVE issue we fixed in commit: 751ecf6afd6568ad ("arm64/sve: Discard stale CPU state when handling SVE traps") The race can occur when the SME trap handler is preempted before and after manipulating the saved FPSIMD/SVE/SME state, starting and ending on the same CPU, e.g. | void do_sme_acc(unsigned long esr, struct pt_regs *regs) | { | // Trap on CPU 0 with TIF_SME clear, SME traps enabled | // task->fpsimd_cpu is 0. | // per_cpu_ptr(&fpsimd_last_state, 0) is task. | | ... | | // Preempted; migrated from CPU 0 to CPU 1. | // TIF_FOREIGN_FPSTATE is set. | | get_cpu_fpsimd_context(); | | /* With TIF_SME userspace shouldn't generate any traps */ | if (test_and_set_thread_flag(TIF_SME)) | WARN_ON(1); | | if (!test_thread_flag(TIF_FOREIGN_FPSTATE)) { | unsigned long vq_minus_one = | sve_vq_from_vl(task_get_sme_vl(current)) - 1; | sme_set_vq(vq_minus_one); | | fpsimd_bind_task_to_cpu(); | } | | put_cpu_fpsimd_context(); | | // Preempted; migrated from CPU 1 to CPU 0. | // task->fpsimd_cpu is still 0 | // If per_cpu_ptr(&fpsimd_last_state, 0) is still task then: | // - Stale HW state is reused (with SME traps enabled) | // - TIF_FOREIGN_FPSTATE is cleared | // - A return to userspace skips HW state restore | } Fix the case where the state is not live and TIF_FOREIGN_FPSTATE is set by calling fpsimd_flush_task_state() to detach from the saved CPU state. This ensures that a subsequent context switch will not reuse the stale CPU state, and will instead set TIF_FOREIGN_FPSTATE, forcing the new state to be reloaded from memory prior to a return to userspace. Note: this was originallly posted as [1]. [ Rutland: rewrite commit message ]
Source: CVE Program / CVE List V5
CVSS Information
N/A
Source: CVE Program / CVE List V5
Vulnerability Type
N/A
Source: CVE Program / CVE List V5
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于状态处理不当,可能导致竞争条件。
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

Vendor Product Affected Versions CPE Subscribe
Linux Linux 8bd7f91c03d886f41d35f6108078d20be5a4a1bd ~ de89368de3894a8db27caeb8fd902ba1c49f696a -
Linux Linux 5.19 -

II. Public POCs for CVE-2025-38170

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2025-38170

请登录查看更多情报信息。

Same Patch Batch · Linux · 2025-07-03 · 78 CVEs total

CVE-2025-38139 9.8 CRITICAL netfs: Fix oops in write-retry from mis-resetting the subreq iterator
CVE-2025-38123 9.8 CRITICAL net: wwan: t7xx: Fix napi rx poll issue
CVE-2025-38146 9.4 CRITICAL net: openvswitch: Fix the dead loop of MPLS parse
CVE-2025-38120 9.4 CRITICAL netfilter: nf_set_pipapo_avx2: fix initial map fill
CVE-2025-38111 7.8 HIGH net/mdiobus: Fix potential out-of-bounds read/write access
CVE-2025-38116 7.8 HIGH wifi: ath12k: fix uaf in ath12k_core_init()
CVE-2025-38108 7.8 HIGH net_sched: red: fix a race in __red_change()
CVE-2025-38102 7.8 HIGH VMCI: fix race between vmci_host_setup_notify and vmci_ctx_unset_notify
CVE-2025-38101 7.8 HIGH ring-buffer: Fix buffer locking in ring_buffer_subbuf_order_set()
CVE-2025-38098 7.8 HIGH drm/amd/display: Don't treat wb connector as physical in create_validate_stream_for_sink
CVE-2025-38097 7.8 HIGH espintcp: remove encap socket caching to avoid reference leak
CVE-2025-38095 7.8 HIGH dma-buf: insert memory barrier before updating num_fences
CVE-2025-38106 7.8 HIGH io_uring: fix use-after-free of sq->thread in __io_uring_show_fdinfo()
CVE-2025-38115 7.8 HIGH net_sched: sch_sfq: fix a potential crash on gso_skb handling
CVE-2025-38117 7.8 HIGH Bluetooth: MGMT: Protect mgmt_pending list with its own lock
CVE-2025-38118 7.8 HIGH Bluetooth: MGMT: Fix UAF on mgmt_remove_adv_monitor_complete
CVE-2025-38127 7.8 HIGH ice: fix Tx scheduler error handling in XDP callback
CVE-2025-38129 7.8 HIGH page_pool: Fix use-after-free in page_pool_recycle_in_ring
CVE-2025-38133 7.8 HIGH iio: adc: ad4851: fix ad4858 chan pointer handling
CVE-2025-38141 7.8 HIGH dm: fix dm_blk_report_zones

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

IV. Related Vulnerabilities

V. Comments for CVE-2025-38170

No comments yet


Leave a comment