CVE-2026-99151: drm/amd/display: Fix NULL sink dereference in USB4 bandwidth functions
In the Linux kernel, the following vulnerability has been resolved:
drm/amd/display: Fix NULL sink dereference in USB4 bandwidth functions
allocateusb4bandwidthforstream() and allocateusb4bandwidth() 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.
linksetdpmsoff() already guards two earlier accesses to stream->sink with explicit NULL checks, confirming that stream->sink can legitimately be NULL. The subsequent call to deallocateusb4bandwidth() 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 linksetdpmsoff() 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 linksetdpmsoff(). (Alex)
(cherry picked from commit 98029a0ce61feb52c563f65349dd9b25f672e355)
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Compensating control
In drm/amd/display USB4 bandwidth functions, replace ASSERT-only handling with explicit NULL checks for stream->sink that return false before dereferencing stream->sink->link, and add matching stream->sink guards at the deallocation call site in link_set_dpms_off().