CVE-2025-71305
published 2026-05-27CVE-2025-71305: In the Linux kernel, the following vulnerability has been resolved: drm/display/dp_mst: Add protection against 0 vcpi When releasing a timeslot there is a…
medium5.5
In the Linux kernel, the following vulnerability has been resolved:
drm/display/dp_mst: Add protection against 0 vcpi
When releasing a timeslot there is a slight chance we may end up
with the wrong payload mask due to overflow if the delayed_destroy_work
ends up coming into play after a DP 2.1 monitor gets disconnected
which causes vcpi to become 0 then we try to make the payload =
~BIT(vcpi - 1) which is a negative shift. VCPI id should never
really be 0 hence skip changing the payload mask if VCPI is 0.
Otherwise it leads to
[515.287237] xe 0000:03:00.0: [drm:drm_dp_mst_get_port_malloc
[drm_display_helper]] port ffff888126ce9000 (3)
[515.287267] -----------[ cut here ]-----------
[515.287268] UBSAN: shift-out-of-bounds in
../drivers/gpu/drm/display/drm_dp_mst_topology.c:4575:36
[515.287271] shift exponent -1 is negative
[515.287275] CPU: 7 UID: 0 PID: 3108 Comm: kworker/u64:33 Tainted: G
S U 6.17.0-rc6-lgci-xe-xe-3795-3e79699fa1b216e92+ #1 PREEMPT(voluntary)
[515.287279] Tainted: [S]=CPU_OUT_OF_SPEC, [U]=USER
[515.287279] Hardware name: ASUS System Product Name/PRIME Z790-P
WIFI, BIOS 1645 03/15/2024
[515.287281] Workqueue: drm_dp_mst_wq drm_dp_delayed_destroy_work
[drm_display_helper]
[515.287303] Call Trace:
[515.287304]
[515.287306] dump_stack_lvl+0xc1/0xf0
[515.287313] dump_stack+0x10/0x20
[515.287316] __ubsan_handle_shift_out_of_bounds+0x133/0x2e0
[515.287324] ? drm_atomic_get_private_obj_state+0x186/0x1d0
[515.287333] drm_dp_atomic_release_time_slots.cold+0x17/0x3d
[drm_display_helper]
[515.287355] mst_connector_atomic_check+0x159/0x180 [xe]
[515.287546] drm_atomic_helper_check_modeset+0x4d9/0xfa0
[515.287550] ? __ww_mutex_lock.constprop.0+0x6f/0x1a60
[515.287562] intel_atomic_check+0x119/0x2b80 [xe]
[515.287740] ? find_held_lock+0x31/0x90
[515.287747] ? lock_release+0xce/0x2a0
[515.287754] drm_atomic_check_only+0x6a2/0xb40
[515.287758] ? drm_atomic_add_affected_connectors+0x12b/0x140
[515.287765] drm_atomic_commit+0x6e/0xf0
[515.287766] ? _pfx__drm_print
Affected
8 ranges
| Vendor | Product | Version range | Fixed in |
|---|---|---|---|
| linux | linux | — | — |
| linux | linux | >= 4d07b0bc403403438d9cf88450506240c5faf92f < 95dbd525efce2a9e9e1c50ad15213de644c85ad0 | 95dbd525efce2a9e9e1c50ad15213de644c85ad0 |
| linux | linux | >= 4d07b0bc403403438d9cf88450506240c5faf92f < ac9a7c329a5610051fc476644c9b9145a5965ecb | ac9a7c329a5610051fc476644c9b9145a5965ecb |
| linux | linux | >= 4d07b0bc403403438d9cf88450506240c5faf92f < 3f44cdb5371faf225af37d5caba8f21ec0572469 | 3f44cdb5371faf225af37d5caba8f21ec0572469 |
| linux | linux | >= 4d07b0bc403403438d9cf88450506240c5faf92f < 4d2ccdea18b564e3f73e3e543854acea64e6277d | 4d2ccdea18b564e3f73e3e543854acea64e6277d |
| linux | linux | >= 4d07b0bc403403438d9cf88450506240c5faf92f < d6afc7539ce06dadfa5b4787b3cfe79b95d8f67a | d6afc7539ce06dadfa5b4787b3cfe79b95d8f67a |
| linux | linux | >= 4d07b0bc403403438d9cf88450506240c5faf92f < 342ccffd9f77fc29fe1c05fd145e4d842bd2feaa | 342ccffd9f77fc29fe1c05fd145e4d842bd2feaa |
| linux | linux_kernel | — | — |