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

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2025-40288— drm/amdgpu: Fix NULL pointer dereference in VRAM logic for APU devices

EPSS 0.04% · P12
Get alerts for future matching vulnerabilitiesLog in to subscribe

I. Basic Information for CVE-2025-40288

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/amdgpu: Fix NULL pointer dereference in VRAM logic for APU devices
Source: NVD (National Vulnerability Database)
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: drm/amdgpu: Fix NULL pointer dereference in VRAM logic for APU devices Previously, APU platforms (and other scenarios with uninitialized VRAM managers) triggered a NULL pointer dereference in `ttm_resource_manager_usage()`. The root cause is not that the `struct ttm_resource_manager *man` pointer itself is NULL, but that `man->bdev` (the backing device pointer within the manager) remains uninitialized (NULL) on APUs—since APUs lack dedicated VRAM and do not fully set up VRAM manager structures. When `ttm_resource_manager_usage()` attempts to acquire `man->bdev->lru_lock`, it dereferences the NULL `man->bdev`, leading to a kernel OOPS. 1. **amdgpu_cs.c**: Extend the existing bandwidth control check in `amdgpu_cs_get_threshold_for_moves()` to include a check for `ttm_resource_manager_used()`. If the manager is not used (uninitialized `bdev`), return 0 for migration thresholds immediately—skipping VRAM-specific logic that would trigger the NULL dereference. 2. **amdgpu_kms.c**: Update the `AMDGPU_INFO_VRAM_USAGE` ioctl and memory info reporting to use a conditional: if the manager is used, return the real VRAM usage; otherwise, return 0. This avoids accessing `man->bdev` when it is NULL. 3. **amdgpu_virt.c**: Modify the vf2pf (virtual function to physical function) data write path. Use `ttm_resource_manager_used()` to check validity: if the manager is usable, calculate `fb_usage` from VRAM usage; otherwise, set `fb_usage` to 0 (APUs have no discrete framebuffer to report). This approach is more robust than APU-specific checks because it: - Works for all scenarios where the VRAM manager is uninitialized (not just APUs), - Aligns with TTM's design by using its native helper function, - Preserves correct behavior for discrete GPUs (which have fully initialized `man->bdev` and pass the `ttm_resource_manager_used()` check). v4: use ttm_resource_manager_used(&adev->mman.vram_mgr.manager) instead of checking the adev->gmc.is_app_apu flag (Christian)
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存在安全漏洞,该漏洞源于未初始化VRAM管理器中的bdev指针,可能导致空指针取消引用。
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 d38ceaf99ed015f2a0b9af3499791bd3a3daae21 ~ e70113b741ba253886cd71dbadfe3ea444bb2f5c -
LinuxLinux 4.2 -

II. Public POCs for CVE-2025-40288

#POC DescriptionSource LinkShenlong Link
AI-Generated POCPremium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2025-40288

登录查看更多情报信息。

Same Patch Batch · Linux · 2025-12-06 · 23 CVEs total

CVE-2025-40277drm/vmwgfx: Validate command header size against SVGA_CMD_MAX_DATASIZE
CVE-2025-40267io_uring/rw: ensure allocated iovec gets cleared for early failure
CVE-2025-40268cifs: client: fix memory leak in smb3_fs_context_parse_param
CVE-2025-40269ALSA: usb-audio: Fix potential overflow of PCM transfer buffer
CVE-2025-40270mm, swap: fix potential UAF issue for VMA readahead
CVE-2025-40271fs/proc: fix uaf in proc_readdir_de()
CVE-2025-40272mm/secretmem: fix use-after-free race in fault handler
CVE-2025-40273NFSD: free copynotify stateid in nfs4_free_ol_stateid()
CVE-2025-40274KVM: guest_memfd: Remove bindings on memslot deletion when gmem is dying
CVE-2025-40275ALSA: usb-audio: Fix NULL pointer dereference in snd_usb_mixer_controls_badd
CVE-2025-40276drm/panthor: Flush shmem writes before mapping buffers CPU-uncached
CVE-2025-40289drm/amdgpu: hide VRAM sysfs attributes on GPUs without VRAM
CVE-2025-40278net: sched: act_ife: initialize struct tc_ife to fix KMSAN kernel-infoleak
CVE-2025-40279net: sched: act_connmark: initialize struct tc_ife to fix kernel leak
CVE-2025-40280tipc: Fix use-after-free in tipc_mon_reinit_self().
CVE-2025-40281sctp: prevent possible shift-out-of-bounds in sctp_transport_update_rto
CVE-2025-40282Bluetooth: 6lowpan: reset link-local header on ipv6 recv path
CVE-2025-40283Bluetooth: btusb: reorder cleanup in btusb_disconnect to avoid UAF
CVE-2025-40284Bluetooth: MGMT: cancel mesh send timer when hdev removed
CVE-2025-40285smb/server: fix possible refcount leak in smb2_sess_setup()

Showing top 20 of 23 CVEs. View all on vendor page → →

IV. Related Vulnerabilities

V. Comments for CVE-2025-40288

No comments yet


Leave a comment