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

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2025-40096— drm/sched: Fix potential double free in drm_sched_job_add_resv_dependencies

EPSS 0.06% · P17
Get alerts for future matching vulnerabilitiesLog in to subscribe

I. Basic Information for CVE-2025-40096

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/sched: Fix potential double free in drm_sched_job_add_resv_dependencies
Source: NVD (National Vulnerability Database)
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: drm/sched: Fix potential double free in drm_sched_job_add_resv_dependencies When adding dependencies with drm_sched_job_add_dependency(), that function consumes the fence reference both on success and failure, so in the latter case the dma_fence_put() on the error path (xarray failed to expand) is a double free. Interestingly this bug appears to have been present ever since commit ebd5f74255b9 ("drm/sched: Add dependency tracking"), since the code back then looked like this: drm_sched_job_add_implicit_dependencies(): ... for (i = 0; i < fence_count; i++) { ret = drm_sched_job_add_dependency(job, fences[i]); if (ret) break; } for (; i < fence_count; i++) dma_fence_put(fences[i]); Which means for the failing 'i' the dma_fence_put was already a double free. Possibly there were no users at that time, or the test cases were insufficient to hit it. The bug was then only noticed and fixed after commit 9c2ba265352a ("drm/scheduler: use new iterator in drm_sched_job_add_implicit_dependencies v2") landed, with its fixup of commit 4eaf02d6076c ("drm/scheduler: fix drm_sched_job_add_implicit_dependencies"). At that point it was a slightly different flavour of a double free, which commit 963d0b356935 ("drm/scheduler: fix drm_sched_job_add_implicit_dependencies harder") noticed and attempted to fix. But it only moved the double free from happening inside the drm_sched_job_add_dependency(), when releasing the reference not yet obtained, to the caller, when releasing the reference already released by the former in the failure case. As such it is not easy to identify the right target for the fixes tag so lets keep it simple and just continue the chain. While fixing we also improve the comment and explain the reason for taking the reference and not dropping it.
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存在安全漏洞,该漏洞源于drm_sched_job_add_resv_dependencies函数中可能发生双重释放。
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 963d0b3569354230f6e2c36a286ef270a8901878 ~ 4c38a63ae12ecc9370a7678077bde2d61aa80e9c -
LinuxLinux 5.16 -

II. Public POCs for CVE-2025-40096

#POC DescriptionSource LinkShenlong Link
AI-Generated POCPremium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2025-40096

登录查看更多情报信息。

Same Patch Batch · Linux · 2025-10-30 · 20 CVEs total

CVE-2025-40095usb: gadget: f_rndis: Refactor bind path to use __free()
CVE-2025-40105vfs: Don't leak disconnected dentries on umount
CVE-2025-40104ixgbevf: fix mailbox API compatibility by negotiating supported features
CVE-2025-40103smb: client: Fix refcount leak for cifs_sb_tlink
CVE-2025-40102KVM: arm64: Prevent access to vCPU events before init
CVE-2025-40100btrfs: do not assert we found block group item when creating free space tree
CVE-2025-40101btrfs: fix memory leaks when rejecting a non SINGLE data profile without an RST
CVE-2025-40099cifs: parse_dfs_referrals: prevent oob on malformed input
CVE-2025-40098ALSA: hda: cs35l41: Fix NULL pointer dereference in cs35l41_get_acpi_mute_state()
CVE-2025-40097ALSA: hda: Fix missing pointer check in hda_component_manager_init function
CVE-2025-40086drm/xe: Don't allow evicting of BOs in same VM in array of VM binds
CVE-2025-40094usb: gadget: f_acm: Refactor bind path to use __free()
CVE-2025-40093usb: gadget: f_ecm: Refactor bind path to use __free()
CVE-2025-40092usb: gadget: f_ncm: Refactor bind path to use __free()
CVE-2025-40090ksmbd: fix recursive locking in RPC handle list access
CVE-2025-40091ixgbe: fix too early devlink_free() in ixgbe_remove()
CVE-2025-40089cxl/features: Add check for no entries in cxl_feature_info
CVE-2025-40088hfsplus: fix slab-out-of-bounds read in hfsplus_strcasecmp()
CVE-2025-40087NFSD: Define a proc_layoutcommit for the FlexFiles layout type

IV. Related Vulnerabilities

V. Comments for CVE-2025-40096

No comments yet


Leave a comment