{"answers":{"affected":"It affects 1 product.","exploited":"There is no known exploitation of CVE-2025-21880 in the wild and no public exploit code.","fix":"Apply the vendor's patch.","what":"CVE-2025-21880 is a medium-severity denial of service vulnerability in Linux kernel, published on 27 Mar 2025. It can only be exploited from the same machine or local network, with no action from the victim."},"fix_prompt":"Check this codebase for CVE-2025-21880 and fix it if it is affected.\n\nWhat it is: CVE-2025-21880 is a medium-severity denial of service vulnerability in Linux kernel, published on 27 Mar 2025. It can only be exploited from the same machine or local network, with no action from the victim.\nExploitation: There is no known exploitation of CVE-2025-21880 in the wild and no public exploit code.\n\nAffected product: Linux kernel. No package-level version data is available, so check the vendor advisory linked from the reference page.\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2025-21880/ (Markdown: https://insights.sbomify.com/CVE-2025-21880/index.md)","id":"CVE-2025-21880","markdown":"https://insights.sbomify.com/CVE-2025-21880/index.md","name":"CVE-2025-21880","record":{"aliases":["BELL-CVE-2025-21880","DEBIAN-CVE-2025-21880","GHSA-6fj2-q3x5-whq9","ROOT-OS-UBUNTU-2404-CVE-2025-21880","UBUNTU-CVE-2025-21880"],"analysis":{"component_type":"kernel","fix_type":"patch","impacts":["denial_of_service"],"network_reachable":"adjacent_or_local","non_default_config":false,"product_category":"Linux kernel driver","requires_auth":"low_privilege","summary":"A flaw in the Linux kernel's Xe GPU driver causes a kernel warning and potential system instability when handling user pointer faults during rebind operations.","user_interaction":"not_required","vuln_class":"denial_of_service"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"Linux","cpe":[{"product":"linux_kernel","vendor":"linux"}],"cvss":{"score":5.5,"severity":"medium","source":"nvd","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","version":"3.1"},"cwes":[],"description":"In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/xe/userptr: fix EFAULT handling\n\nCurrently we treat EFAULT from hmm_range_fault() as a non-fatal error\nwhen called from xe_vm_userptr_pin() with the idea that we want to avoid\nkilling the entire vm and chucking an error, under the assumption that\nthe user just did an unmap or something, and has no intention of\nactually touching that memory from the GPU.  At this point we have\nalready zapped the PTEs so any access should generate a page fault, and\nif the pin fails there also it will then become fatal.\n\nHowever it looks like it's possible for the userptr vma to still be on\nthe rebind list in preempt_rebind_work_func(), if we had to retry the\npin again due to something happening in the caller before we did the\nrebind step, but in the meantime needing to re-validate the userptr and\nthis time hitting the EFAULT.\n\nThis explains an internal user report of hitting:\n\n[  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]\n[  191.738551] Workqueue: xe-ordered-wq preempt_rebind_work_func [xe]\n[  191.738616] RIP: 0010:xe_pt_stage_bind.constprop.0+0x60a/0x6b0 [xe]\n[  191.738690] Call Trace:\n[  191.738692]  \u003cTASK\u003e\n[  191.738694]  ? show_regs+0x69/0x80\n[  191.738698]  ? __warn+0x93/0x1a0\n[  191.738703]  ? xe_pt_stage_bind.constprop.0+0x60a/0x6b0 [xe]\n[  191.738759]  ? report_bug+0x18f/0x1a0\n[  191.738764]  ? handle_bug+0x63/0xa0\n[  191.738767]  ? exc_invalid_op+0x19/0x70\n[  191.738770]  ? asm_exc_invalid_op+0x1b/0x20\n[  191.738777]  ? xe_pt_stage_bind.constprop.0+0x60a/0x6b0 [xe]\n[  191.738834]  ? ret_from_fork_asm+0x1a/0x30\n[  191.738849]  bind_op_prepare+0x105/0x7b0 [xe]\n[  191.738906]  ? dma_resv_reserve_fences+0x301/0x380\n[  191.738912]  xe_pt_update_ops_prepare+0x28c/0x4b0 [xe]\n[  191.738966]  ? kmemleak_alloc+0x4b/0x80\n[  191.738973]  ops_execute+0x188/0x9d0 [xe]\n[  191.739036]  xe_vm_rebind+0x4ce/0x5a0 [xe]\n[  191.739098]  ? trace_hardirqs_on+0x4d/0x60\n[  191.739112]  preempt_rebind_work_func+0x76f/0xd00 [xe]\n\nFollowed by NPD, when running some workload, since the sg was never\nactually populated but the vma is still marked for rebind when it should\nbe skipped for this special EFAULT case. This is confirmed to fix the\nuser report.\n\nv2 (MattB):\n - Move earlier.\nv3 (MattB):\n - Update the commit message to make it clear that this indeed fixes the\n   issue.\n\n(cherry picked from commit 6b93cb98910c826c2e2004942f8b060311e43618)","ecosystems":[],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"none_known"},"has_fix":true,"headline":"drm/xe/userptr: fix EFAULT handling","id":"CVE-2025-21880","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":null,"product":"linux:linux_kernel","products":["linux:linux_kernel"],"type":"denial_of_service","year":"2025"},"n_packages":0,"n_references":3,"next":{"headline":"uprobes: Reject the shared zeropage in uprobe_write_opcode()","id":"CVE-2025-21881"},"packages":[],"prev":{"headline":"btrfs: fix use-after-free on inode when scanning root during em shrinking","id":"CVE-2025-21879"},"products":["Linux"],"published":"2025-03-27","related":[{"cvss_score":8.8,"headline":"Linux Kernel Out-of-Bounds Write","id":"CVE-2026-53266","kev_date_added":"2026-09-18","published":"2026-06-25"},{"cvss_score":8.8,"headline":"Linux Kernel Improper Input Validation","id":"CVE-2013-6282","kev_date_added":"2022-09-15","published":"2013-11-19"},{"cvss_score":8.4,"headline":"Linux Kernel Heap-Based Buffer Overflow","id":"CVE-2022-0185","kev_date_added":"2024-08-21","published":"2022-02-11"},{"cvss_score":8.4,"headline":"Linux Kernel Privilege Escalation","id":"CVE-2013-2094","kev_date_added":"2022-09-15","published":"2013-05-14"},{"cvss_score":7.8,"headline":"Linux Kernel Unspecified","id":"CVE-2026-53362","kev_date_added":"2026-08-27","published":"2026-07-04"},{"cvss_score":7.8,"headline":"Linux Kernel Missing Initialization of a Variable","id":"CVE-2026-46300","kev_date_added":"2026-10-28","published":"2026-05-23"},{"cvss_score":7.8,"headline":"Linux Kernel Race Condition","id":"CVE-2025-39964","kev_date_added":"2026-09-18","published":"2025-10-13"}],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"US public information, NVD API terms","name":"NVD"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":null,"exploitation":null,"technical_impact":null},"state":"PUBLISHED","updated":"2026-05-11","vendors":["Linux"]},"summary":"A flaw in the Linux kernel's Xe GPU driver causes a kernel warning and potential system instability when handling user pointer faults during rebind operations.","url":"https://insights.sbomify.com/CVE-2025-21880/"}