CVE-2025-21644: drm/xe: Fix tlb invalidation when wedging
In the Linux kernel, the following vulnerability has been resolved:
drm/xe: Fix tlb invalidation when wedging
If GuC fails to load, the driver wedges, but in the process it tries to
do stuff that may not be initialized yet. This moves the
xe_gt_tlb_invalidation_init() to be done earlier: as its own doc says,
it's a software-only initialization and should had been named with the
_early() suffix.
Move it to be called by xe_gt_init_early(), so the locks and seqno are
initialized, avoiding a NULL ptr deref when wedging:
xe 0000:03:00.0: [drm] *ERROR* GT0: load failed: status: Reset = 0, BootROM = 0x50, UKernel = 0x00, MIA = 0x00, Auth = 0x01
xe 0000:03:00.0: [drm] *ERROR* GT0: firmware signature verification failed
xe 0000:03:00.0: [drm] *ERROR* CRITICAL: Xe has declared device 0000:03:00.0 as wedged.
...
BUG: kernel NULL pointer dereference, address: 0000000000000000
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 0 P4D 0
Oops: Oops: 0000 [#1] PREEMPT SMP NOPTI
CPU: 9 UID: 0 PID: 3908 Comm: modprobe Tainted: G U W 6.13.0-rc4-xe+ #3
Tainted: [U]=USER, [W]=WARN
Hardware name: Intel Corporation Alder Lake Client Platform/AlderLake-S ADP-S DDR5 UDIMM CRB, BIOS ADLSFWI1.R00.3275.A00.2207010640 07/01/2022
RIP: 0010:xe_gt_tlb_invalidation_reset+0x75/0x110 [xe]
This can be easily triggered by poking the GuC binary to force a
signature failure. There will still be an extra message,
xe 0000:03:00.0: [drm] *ERROR* GT0: GuC mmio request 0x4100: no reply 0x4100
but that's better than a NULL ptr deref.
(cherry picked from commit 5001ef3af8f2c972d6fd9c5221a8457556f8bea6)
Security readout for executives and security teams
Plain-English summary
CVE-2025-21644 is a Linux kernel availability bug in the drm/xe graphics driver. When Intel GuC firmware loading fails and the driver marks the device wedged, the kernel can hit a NULL pointer dereference instead of handling the failure cleanly, causing a local denial of service.
Executive priority
Treat as a moderate operational stability issue. It is not shown as remotely exploitable or actively exploited, but affected Linux endpoints or workstations could experience kernel crashes, so patch through normal kernel maintenance with priority for exposed user-accessible systems.
Technical view
The issue is CWE-476 in drm/xe TLB invalidation reset handling. During GuC load failure, xe_gt_tlb_invalidation_reset could run before its locks and sequence state were initialized. The upstream fix moves xe_gt_tlb_invalidation_init into the earlier GT initialization path.
Likely exposure
Exposure is most likely on Linux systems running affected kernel versions with the drm/xe driver and the GuC firmware load failure path reachable. The CVSS vector is local, low complexity, low privileges, no user interaction, and high availability impact.
Exploitation context
The sources do not report active exploitation, and CISA KEV is false. The CVE text says the crash can be triggered by forcing a GuC signature failure, but it provides only local availability impact evidence.
Researcher notes
Evidence supports a local denial-of-service condition in the Linux drm/xe wedging path. Do not broaden scope beyond affected Linux kernels and the referenced driver behavior. The source bundle identifies the upstream fix but not distribution-specific package names.
Mitigation direction
Update to a kernel containing the referenced stable fixes.
Apply distribution kernel updates when your vendor ships this fix.
Prioritize systems using affected Linux kernels and drm/xe graphics support.
Check vendor kernel advisories for exact fixed package versions.
Avoid direct wrangler or deployment implications; this is host kernel maintenance.
Validation and detection
Inventory Linux kernel versions against the affected version data.
Confirm whether drm/xe is present and used on relevant hosts.
Review kernel logs for GuC load failure, wedged device, or NULL dereference messages.
Verify the stable fix commit is present in the running kernel source or package changelog.
Retest affected hosts after kernel update for clean boot and graphics driver initialization.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · low confidence lookup
CWE-476: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-476 · source CWE mapping
NULL Pointer Dereference
NULL Pointer Dereference represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.