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

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2025-21880— drm/xe/userptr: fix EFAULT handling

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存在安全漏洞,该漏洞源于drm/xe未正确处理EFAULT,可能导致用户ptr vma残留。

AI Predicted 5.5 Difficulty: Moderate EPSS 0.20% · P10

Possible ATT&CK Techniques 1 AI

T1055 · Process Injection

Affected Version Matrix 8

VendorProduct Version RangeStatus
Linux Linux 521db22a1d70dbc596a07544a738416025b1b63c< daad16d0a538fa938e344fd83927bbcfcd8a66ec affected
521db22a1d70dbc596a07544a738416025b1b63c< 51cc278f8ffacd5f9dc7d13191b81b912829db59 affected
521db22a1d70dbc596a07544a738416025b1b63c< a9f4fa3a7efa65615ff7db13023ac84516e99e21 affected
6.10 affected
< 6.10 unaffected
6.12.18≤ 6.12.* unaffected
6.13.6≤ 6.13.* unaffected
6.14≤ * unaffected
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2025-21880

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
drm/xe/userptr: fix EFAULT handling
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: drm/xe/userptr: fix EFAULT handling Currently we treat EFAULT from hmm_range_fault() as a non-fatal error when called from xe_vm_userptr_pin() with the idea that we want to avoid killing the entire vm and chucking an error, under the assumption that the user just did an unmap or something, and has no intention of actually touching that memory from the GPU. At this point we have already zapped the PTEs so any access should generate a page fault, and if the pin fails there also it will then become fatal. However it looks like it's possible for the userptr vma to still be on the rebind list in preempt_rebind_work_func(), if we had to retry the pin again due to something happening in the caller before we did the rebind step, but in the meantime needing to re-validate the userptr and this time hitting the EFAULT. This explains an internal user report of hitting: [ 191.738349] WARNING: CPU: 1 PID: 157 at drivers/gpu/drm/xe/xe_res_cursor.h:158 xe_pt_stage_bind.constprop.0+0x60a/0x6b0 [xe] [ 191.738551] Workqueue: xe-ordered-wq preempt_rebind_work_func [xe] [ 191.738616] RIP: 0010:xe_pt_stage_bind.constprop.0+0x60a/0x6b0 [xe] [ 191.738690] Call Trace: [ 191.738692] <TASK> [ 191.738694] ? show_regs+0x69/0x80 [ 191.738698] ? __warn+0x93/0x1a0 [ 191.738703] ? xe_pt_stage_bind.constprop.0+0x60a/0x6b0 [xe] [ 191.738759] ? report_bug+0x18f/0x1a0 [ 191.738764] ? handle_bug+0x63/0xa0 [ 191.738767] ? exc_invalid_op+0x19/0x70 [ 191.738770] ? asm_exc_invalid_op+0x1b/0x20 [ 191.738777] ? xe_pt_stage_bind.constprop.0+0x60a/0x6b0 [xe] [ 191.738834] ? ret_from_fork_asm+0x1a/0x30 [ 191.738849] bind_op_prepare+0x105/0x7b0 [xe] [ 191.738906] ? dma_resv_reserve_fences+0x301/0x380 [ 191.738912] xe_pt_update_ops_prepare+0x28c/0x4b0 [xe] [ 191.738966] ? kmemleak_alloc+0x4b/0x80 [ 191.738973] ops_execute+0x188/0x9d0 [xe] [ 191.739036] xe_vm_rebind+0x4ce/0x5a0 [xe] [ 191.739098] ? trace_hardirqs_on+0x4d/0x60 [ 191.739112] preempt_rebind_work_func+0x76f/0xd00 [xe] Followed by NPD, when running some workload, since the sg was never actually populated but the vma is still marked for rebind when it should be skipped for this special EFAULT case. This is confirmed to fix the user report. v2 (MattB): - Move earlier. v3 (MattB): - Update the commit message to make it clear that this indeed fixes the issue. (cherry picked from commit 6b93cb98910c826c2e2004942f8b060311e43618)
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存在安全漏洞,该漏洞源于drm/xe未正确处理EFAULT,可能导致用户ptr vma残留。
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 521db22a1d70dbc596a07544a738416025b1b63c ~ daad16d0a538fa938e344fd83927bbcfcd8a66ec -
Linux Linux 6.10 -

II. Public POCs for CVE-2025-21880

# 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-21880

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

Patches & Fixes for CVE-2025-21880 (3)

Same Patch Batch · Linux · 2025-03-27 · 124 CVEs total

CVE-2023-53006 9.8 CRITICAL cifs: Fix oops due to uncleared server->smbd_conn in reconnect
CVE-2025-21876 8.8 HIGH iommu/vt-d: Fix suspicious RCU usage
CVE-2025-21890 8.2 HIGH idpf: fix checksums set in idpf_rx_rsc()
CVE-2025-21887 7.8 HIGH ovl: fix UAF in ovl_dentry_update_reval by moving dput() in ovl_link_up
CVE-2023-53033 7.8 HIGH netfilter: nft_payload: incorrect arithmetics when fetching VLAN header bits
CVE-2025-21889 7.8 HIGH perf/core: Add RCU read lock protection to perf_iterate_ctx()
CVE-2023-52930 7.8 HIGH drm/i915: Fix potential bit_17 double-free
CVE-2023-52931 7.8 HIGH drm/i915: Avoid potential vm use-after-free
CVE-2023-52934 7.8 HIGH mm/MADV_COLLAPSE: catch !none !huge !bad pmd lookups
CVE-2023-52935 7.8 HIGH mm/khugepaged: fix ->anon_vma race
CVE-2023-53009 7.8 HIGH drm/amdkfd: Add sync after creating vram bo
CVE-2023-52999 7.8 HIGH net: fix UaF in netns ops registration error path
CVE-2023-52973 7.8 HIGH vc_screen: move load of struct vc_data pointer in vcs_read() to avoid UAF
CVE-2023-52983 7.8 HIGH block, bfq: fix uaf for bfqq in bic_set_bfqq()
CVE-2023-52981 7.8 HIGH drm/i915: Fix request ref counting during error capture & debugfs dump
CVE-2023-52975 7.8 HIGH scsi: iscsi_tcp: Fix UAF during logout when accessing the shost ipaddress
CVE-2023-52974 7.8 HIGH scsi: iscsi_tcp: Fix UAF during login when accessing the shost ipaddress
CVE-2022-49760 7.8 HIGH mm/hugetlb: fix PTE marker handling in hugetlb_change_protection()
CVE-2025-21867 7.8 HIGH bpf, test_run: Fix use-after-free issue in eth_skb_pkt_type()
CVE-2023-52988 7.8 HIGH ALSA: hda/via: Avoid potential array out-of-bound in add_secret_dac_path()

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

IV. Related Vulnerabilities

V. Comments for CVE-2025-21880

No comments yet


Leave a comment