In the Linux kernel, the following vulnerability has been resolved: drm/edid: In connector_bad_edid() cap num_of_ext by num_blocks read In commit e11f5bd8228f (“drm: Add support for DP 1.4 Compliance edid corruption test”) the function connector_bad_edid() started assuming that the memory for the EDID passed to it was big enough to hold edid[0x7e] + 1
blocks of data (1 extra for the base block). It completely ignored the fact that the function was passed num_blocks
which indicated how much memory had been allocated for the EDID. Let’s fix this by adding a bounds check. This is important for handling the case where there’s an error in the first block of the EDID. In that case we will call connector_bad_edid() without having re-allocated memory based on edid[0x7e]
.
OS | Version | Architecture | Package | Version | Filename |
---|---|---|---|---|---|
Debian | 12 | all | linux | < 5.14.16-1 | linux_5.14.16-1_all.deb |
Debian | 11 | all | linux | < 5.10.84-1 | linux_5.10.84-1_all.deb |
Debian | 10 | all | linux | < 4.19.249-2 | linux_4.19.249-2_all.deb |
Debian | 999 | all | linux | < 5.14.16-1 | linux_5.14.16-1_all.deb |
Debian | 13 | all | linux | < 5.14.16-1 | linux_5.14.16-1_all.deb |