Linux: drm/amd/display: Fix NULL sink dereference in USB4 bandwidth functions
What fixes it
- 4c8b5e5b9776ad08138d79b14238c5742b32911bLinuxCVE List
- 55a67aa89342545b89f469dea6f29bfb6fac6f3dLinuxCVE List
- 7.2.13LinuxCVE List
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
In the Linux kernel, the following vulnerability has been resolved:
drm/amd/display: Fix NULL sink dereference in USB4 bandwidth functions
allocate_usb4_bandwidth_for_stream() and allocate_usb4_bandwidth() both use ASSERT(stream->sink) before dereferencing stream->sink->link. ASSERT is compiled out in production builds, so a NULL stream->sink causes a NULL pointer dereference.
link_set_dpms_off() already guards two earlier accesses to stream->sink with explicit NULL checks, confirming that stream->sink can legitimately be NULL. The subsequent call to deallocate_usb4_bandwidth() had no equivalent guard.
Replace the ASSERT() calls with proper NULL checks that return false early, and add a matching stream->sink guard at the call site in link_set_dpms_off() consistent with the surrounding pattern.
v2: Keep the existing ASSERT() calls for diagnostics (to report unexpected NULL sink), and add explicit NULL checks that return false before dereferencing stream->sink. Also add a matching stream->sink guard at the deallocation call site in link_set_dpms_off(). (Alex)
(cherry picked from commit 98029a0ce61feb52c563f65349dd9b25f672e355)
Text from CVE List
Affected versions 3
- Linuxaffected: 0b1eebd359685dd681f6e0df5540a5bb985a27bf before 4c8b5e5b9776ad08138d79b14238c5742b32911bCVE List
- Linuxaffected: 8fa813b7fd1eccbed13e126166cf764f1f11a7d3 before 55a67aa89342545b89f469dea6f29bfb6fac6f3dCVE List
- Linuxaffected: 7.2.9 before 7.2.13CVE List