CVE-2025-37754

drm/i915/huc: Fix fence not released on early probe errors

published May 1, 2025

CVSS
—
EPSS
0%
Percentile
10.9
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

drm/i915/huc: Fix fence not released on early probe errors

HuC delayed loading fence, introduced with commit 27536e03271da

("drm/i915/huc: track delayed HuC load with a fence"), is registered with

object tracker early on driver probe but unregistered only from driver

remove, which is not called on early probe errors. Since its memory is

allocated under devres, then released anyway, it may happen to be

allocated again to the fence and reused on future driver probes, resulting

in kernel warnings that taint the kernel:

<4> [309.731371] ------------[ cut here ]------------

<3> [309.731373] ODEBUG: init destroyed (active state 0) object: ffff88813d7dd2e0 object type: i915_sw_fence hint: sw_fence_dummy_notify+0x0/0x20 [i915]

<4> [309.731575] WARNING: CPU: 2 PID: 3161 at lib/debugobjects.c:612 debug_print_object+0x93/0xf0

...

<4> [309.731693] CPU: 2 UID: 0 PID: 3161 Comm: i915_module_loa Tainted: G U 6.14.0-CI_DRM_16362-gf0fd77956987+ #1

...

<4> [309.731700] RIP: 0010:debug_print_object+0x93/0xf0

...

<4> [309.731728] Call Trace:

<4> [309.731730] <TASK>

...

<4> [309.731949] __debug_object_init+0x17b/0x1c0

<4> [309.731957] debug_object_init+0x34/0x50

<4> [309.732126] __i915_sw_fence_init+0x34/0x60 [i915]

<4> [309.732256] intel_huc_init_early+0x4b/0x1d0 [i915]

<4> [309.732468] intel_uc_init_early+0x61/0x680 [i915]

<4> [309.732667] intel_gt_common_init_early+0x105/0x130 [i915]

<4> [309.732804] intel_root_gt_init_early+0x63/0x80 [i915]

<4> [309.732938] i915_driver_probe+0x1fa/0xeb0 [i915]

<4> [309.733075] i915_pci_probe+0xe6/0x220 [i915]

<4> [309.733198] local_pci_probe+0x44/0xb0

<4> [309.733203] pci_device_probe+0xf4/0x270

<4> [309.733209] really_probe+0xee/0x3c0

<4> [309.733215] __driver_probe_device+0x8c/0x180

<4> [309.733219] driver_probe_device+0x24/0xd0

<4> [309.733223] __driver_attach+0x10f/0x220

<4> [309.733230] bus_for_each_dev+0x7d/0xe0

<4> [309.733236] driver_attach+0x1e/0x30

<4> [309.733239] bus_add_driver+0x151/0x290

<4> [309.733244] driver_register+0x5e/0x130

<4> [309.733247] __pci_register_driver+0x7d/0x90

<4> [309.733251] i915_pci_register_driver+0x23/0x30 [i915]

<4> [309.733413] i915_init+0x34/0x120 [i915]

<4> [309.733655] do_one_initcall+0x62/0x3f0

<4> [309.733667] do_init_module+0x97/0x2a0

<4> [309.733671] load_module+0x25ff/0x2890

<4> [309.733688] init_module_from_file+0x97/0xe0

<4> [309.733701] idempotent_init_module+0x118/0x330

<4> [309.733711] __x64_sys_finit_module+0x77/0x100

<4> [309.733715] x64_sys_call+0x1f37/0x2650

<4> [309.733719] do_syscall_64+0x91/0x180

<4> [309.733763] entry_SYSCALL_64_after_hwframe+0x76/0x7e

<4> [309.733792] </TASK>

...

<4> [309.733806] ---[ end trace 0000000000000000 ]---

That scenario is most easily reproducible with

igt@i915_module_load@reload-with-fault-injection.

Fix the issue by moving the cleanup step to driver release path.

(cherry picked from commit 795dbde92fe5c6996a02a5b579481de73035e7bf)

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00212 · 10.9th percentile
Published
2025-05-01T12:55Z
EPSS history
Timeline
  • 01 MAY 12:55Z
    drm/i915/huc: Fix fence not released on early probe errors
    cvelistv5