<Vulnerability name="CVE-2025-71305">
    <DocumentDistribution xml:lang="en">Copyright © 2012 Red Hat, Inc. All rights reserved.</DocumentDistribution>
    <ThreatSeverity>Moderate</ThreatSeverity>
    <PublicDate>2026-05-27T00:00:00</PublicDate>
    <Bugzilla id="2481941" url="https://bugzilla.redhat.com/show_bug.cgi?id=2481941" xml:lang="en:us">
kernel: drm/display/dp_mst: Add protection against 0 vcpi
    </Bugzilla>
    <CVSS3 status="draft">
        <CVSS3BaseScore>5.5</CVSS3BaseScore>
        <CVSS3ScoringVector>CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H</CVSS3ScoringVector>
    </CVSS3>
    <CWE>CWE-1335</CWE>
    <Details xml:lang="en:us" source="Mitre">
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
&lt;7&gt; [515.287237] xe 0000:03:00.0: [drm:drm_dp_mst_get_port_malloc
[drm_display_helper]] port ffff888126ce9000 (3)
&lt;4&gt; [515.287267] -----------[ cut here ]-----------
&lt;3&gt; [515.287268] UBSAN: shift-out-of-bounds in
../drivers/gpu/drm/display/drm_dp_mst_topology.c:4575:36
&lt;3&gt; [515.287271] shift exponent -1 is negative
&lt;4&gt; [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)
&lt;4&gt; [515.287279] Tainted: [S]=CPU_OUT_OF_SPEC, [U]=USER
&lt;4&gt; [515.287279] Hardware name: ASUS System Product Name/PRIME Z790-P
WIFI, BIOS 1645 03/15/2024
&lt;4&gt; [515.287281] Workqueue: drm_dp_mst_wq drm_dp_delayed_destroy_work
[drm_display_helper]
&lt;4&gt; [515.287303] Call Trace:
&lt;4&gt; [515.287304] &lt;TASK&gt;
&lt;4&gt; [515.287306] dump_stack_lvl+0xc1/0xf0
&lt;4&gt; [515.287313] dump_stack+0x10/0x20
&lt;4&gt; [515.287316] __ubsan_handle_shift_out_of_bounds+0x133/0x2e0
&lt;4&gt; [515.287324] ? drm_atomic_get_private_obj_state+0x186/0x1d0
&lt;4&gt; [515.287333] drm_dp_atomic_release_time_slots.cold+0x17/0x3d
[drm_display_helper]
&lt;4&gt; [515.287355] mst_connector_atomic_check+0x159/0x180 [xe]
&lt;4&gt; [515.287546] drm_atomic_helper_check_modeset+0x4d9/0xfa0
&lt;4&gt; [515.287550] ? __ww_mutex_lock.constprop.0+0x6f/0x1a60
&lt;4&gt; [515.287562] intel_atomic_check+0x119/0x2b80 [xe]
&lt;4&gt; [515.287740] ? find_held_lock+0x31/0x90
&lt;4&gt; [515.287747] ? lock_release+0xce/0x2a0
&lt;4&gt; [515.287754] drm_atomic_check_only+0x6a2/0xb40
&lt;4&gt; [515.287758] ? drm_atomic_add_affected_connectors+0x12b/0x140
&lt;4&gt; [515.287765] drm_atomic_commit+0x6e/0xf0
&lt;4&gt; [515.287766] ? _pfx__drm_printfn_info+0x10/0x10
&lt;4&gt; [515.287774] drm_client_modeset_commit_atomic+0x25c/0x2b0
&lt;4&gt; [515.287794] drm_client_modeset_commit_locked+0x60/0x1b0
&lt;4&gt; [515.287795] ? mutex_lock_nested+0x1b/0x30
&lt;4&gt; [515.287801] drm_client_modeset_commit+0x26/0x50
&lt;4&gt; [515.287804] __drm_fb_helper_restore_fbdev_mode_unlocked+0xdc/0x110
&lt;4&gt; [515.287810] drm_fb_helper_hotplug_event+0x120/0x140
&lt;4&gt; [515.287814] drm_fbdev_client_hotplug+0x28/0xd0
&lt;4&gt; [515.287819] drm_client_hotplug+0x6c/0xf0
&lt;4&gt; [515.287824] drm_client_dev_hotplug+0x9e/0xd0
&lt;4&gt; [515.287829] drm_kms_helper_hotplug_event+0x1a/0x30
&lt;4&gt; [515.287834] drm_dp_delayed_destroy_work+0x3df/0x410
[drm_display_helper]
&lt;4&gt; [515.287861] process_one_work+0x22b/0x6f0
&lt;4&gt; [515.287874] worker_thread+0x1e8/0x3d0
&lt;4&gt; [515.287879] ? __pfx_worker_thread+0x10/0x10
&lt;4&gt; [515.287882] kthread+0x11c/0x250
&lt;4&gt; [515.287886] ? __pfx_kthread+0x10/0x10
&lt;4&gt; [515.287890] ret_from_fork+0x2d7/0x310
&lt;4&gt; [515.287894] ? __pfx_kthread+0x10/0x10
&lt;4&gt; [515.287897] ret_from_fork_asm+0x1a/0x30
    </Details>
    <Details xml:lang="en:us" source="Red Hat">
A flaw was found in the Linux kernel's DisplayPort Multi-Stream Transport (MST) subsystem. When a DisplayPort 2.1 monitor is disconnected, a timing issue can cause the Virtual Channel Packet Interval (VCPI) value to become zero. Subsequent operations attempting to use this zero value in a bit shift can lead to a "shift-out-of-bounds" error, potentially resulting in system instability or a denial of service.
    </Details>
    <PackageState cpe="cpe:/o:redhat:enterprise_linux:10">
        <ProductName>Red Hat Enterprise Linux 10</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>kernel</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/o:redhat:enterprise_linux:6">
        <ProductName>Red Hat Enterprise Linux 6</ProductName>
        <FixState>Not affected</FixState>
        <PackageName>kernel</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/o:redhat:enterprise_linux:7">
        <ProductName>Red Hat Enterprise Linux 7</ProductName>
        <FixState>Not affected</FixState>
        <PackageName>kernel</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/o:redhat:enterprise_linux:7">
        <ProductName>Red Hat Enterprise Linux 7</ProductName>
        <FixState>Not affected</FixState>
        <PackageName>kernel-rt</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/o:redhat:enterprise_linux:8">
        <ProductName>Red Hat Enterprise Linux 8</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>kernel</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/o:redhat:enterprise_linux:8">
        <ProductName>Red Hat Enterprise Linux 8</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>kernel-rt</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/o:redhat:enterprise_linux:9">
        <ProductName>Red Hat Enterprise Linux 9</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>kernel</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/o:redhat:enterprise_linux:9">
        <ProductName>Red Hat Enterprise Linux 9</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>kernel-rt</PackageName>
    </PackageState>
    <References xml:lang="en:us">
https://www.cve.org/CVERecord?id=CVE-2025-71305
https://nvd.nist.gov/vuln/detail/CVE-2025-71305
https://lore.kernel.org/linux-cve-announce/2026052706-CVE-2025-71305-d814@gregkh/T
    </References>
</Vulnerability>