CVE-2026-93234: drm/gud: validate TV mode names before creating enum property
In the Linux kernel, the following vulnerability has been resolved:
drm/gud: validate TV mode names before creating enum property
The GUD protocol returns TV mode names as fixed-size GUDCONNECTORTVMODENAMELEN entries and requires each name to be NUL-terminated.
gudconnectoraddtvmode() currently passes each fixed-size entry directly to drmmodecreatetvpropertieslegacy(), which eventually reaches drmpropertyaddenum() and strlen(). If a device returns an entry without a terminating NUL byte, strlen() reads past the end of the slot and can run beyond the allocated buffer, triggering an out-of-bounds read.
Validate that each returned TV mode name contains a NUL terminator within its fixed-size slot before passing it to the DRM property code. If a malformed entry is found, reject the device response with -EIO.
This fixes the out-of-bounds read without changing the handling of valid devices, and avoids silently truncating malformed protocol data.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Compensating control
Validate that each returned TV mode name contains a NUL terminator within its fixed-size slot before passing it to the DRM property code; if a malformed entry lacks a terminator, reject the device response with -EIO.
Event History
Frequently Asked Questions
What systems are exposed to this issue?
Systems using the Linux kernel DRM GUD driver are exposed when a connected GUD device supplies TV mode names. The malformed response must contain a TV mode name entry that lacks a NUL terminator within its fixed-size protocol slot.
What must an attacker or faulty device do to trigger the problem?
The device must return malformed TV mode data with an unterminated name. When the driver creates the TV-mode enum property, the kernel can call strlen() on that entry and read beyond the allocated buffer.
How does the fix handle malformed TV mode names?
The driver validates that every returned TV mode name has a NUL terminator within its fixed-size entry before passing it to DRM property code. If any entry is malformed, it rejects the device response with -EIO rather than truncating the data.