CVE-2026-89821: drm/amd/display: avoid divide-by-zero in __is_lut_linear()
In the Linux kernel, the following vulnerability has been resolved:
drm/amd/display: avoid divide-by-zero in islutlinear()
islutlinear() computes the expected value of each entry with
expected = i MAXDRMLUTVALUE / (size - 1);
If it is ever called with a single-entry LUT, size - 1 is zero and the kernel takes a divide error (#DE). A LUT with fewer than two entries cannot describe a linear mapping anyway, so return false early instead of dividing by zero.
Affected Software
Event History
Frequently Asked Questions
What input condition triggers the kernel fault?
The fault occurs if __is_lut_linear() is called with a LUT containing exactly one entry. The calculation divides by size minus one, which is zero for that input and causes a divide-error exception.
What is the effect of the fix?
The corrected code treats LUTs with fewer than two entries as non-linear and returns false before performing the calculation. This prevents the divide-by-zero fault.