Description
In the Linux kernel, the following vulnerability has been resolved: drm/amd/display: Clamp VBIOS HDMI retimer register count to array size [Why & How] The VBIOS integrated info tables (v1_11 and v2_1) contain HdmiRegNum and Hdmi6GRegNum fields that are used as loop bounds when copying retimer I2C register settings into fixed-size arrays (dp*_ext_hdmi_reg_settings[9] and dp*_ext_hdmi_6g_reg_settings[3]). These u8 fields are not validated before use, so a malformed VBIOS can specify values up to 255, causing an out-of-bounds heap write during driver probe. Clamp each register count to the destination array size using min_t() before the copy loops, in both get_integrated_info_v11() and get_integrated_info_v2_1(). (cherry picked from commit 5a7f0ef90195940c54b0f5bb85b87da55f038c69)
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
1e8635ea0ea370bf4f0f2b2f1b3eb61474dd962a to < 029571d51140650783be4fb98fe7cb4754752086affected1e8635ea0ea370bf4f0f2b2f1b3eb61474dd962a to < 5f8b39452fb16f507c9e4d8b4a83ce27e893307caffected1e8635ea0ea370bf4f0f2b2f1b3eb61474dd962a to < 4d1c3c26c2ab1842e139e61983395d64bd2e518baffected1e8635ea0ea370bf4f0f2b2f1b3eb61474dd962a to < d6be8e59af412623e3d874be3a048406c0edfe60affected1e8635ea0ea370bf4f0f2b2f1b3eb61474dd962a to < 3f32d52ec604c659725d865cf8cc6a17a33f9c6aaffected1e8635ea0ea370bf4f0f2b2f1b3eb61474dd962a to < 8aaa7e317fbd4beb9c6a9f77aa4cf52fae78b117affected1e8635ea0ea370bf4f0f2b2f1b3eb61474dd962a to < fb0707ce00eef4e2d60c3020e1c0432739703e4aaffected
Linux Linux
Default version status: affected
4.15affected0 to < 4.15unaffected5.15.210 to ≤ 5.15.*unaffected6.1.176 to ≤ 6.1.*unaffected6.6.143 to ≤ 6.6.*unaffected6.12.94 to ≤ 6.12.*unaffected6.18.36 to ≤ 6.18.*unaffected7.0.13 to ≤ 7.0.*unaffected7.1 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/029571d51140650783be4fb98fe7cb4754752086 ↗
- https://git.kernel.org/stable/c/5f8b39452fb16f507c9e4d8b4a83ce27e893307c ↗
- https://git.kernel.org/stable/c/4d1c3c26c2ab1842e139e61983395d64bd2e518b ↗
- https://git.kernel.org/stable/c/d6be8e59af412623e3d874be3a048406c0edfe60 ↗
- https://git.kernel.org/stable/c/3f32d52ec604c659725d865cf8cc6a17a33f9c6a ↗
- https://git.kernel.org/stable/c/8aaa7e317fbd4beb9c6a9f77aa4cf52fae78b117 ↗
- https://git.kernel.org/stable/c/fb0707ce00eef4e2d60c3020e1c0432739703e4a ↗