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]
.
git.kernel.org/linus/97794170b696856483f74b47bfb6049780d2d3a0 (5.15-rc6)
git.kernel.org/stable/c/09f3946bb452918dbfb1982add56f9ffaae393dc
git.kernel.org/stable/c/97794170b696856483f74b47bfb6049780d2d3a0
git.kernel.org/stable/c/a7b45024f66f9ec769e8dbb1a51ae83cd05929c7
launchpad.net/bugs/cve/CVE-2021-47444
nvd.nist.gov/vuln/detail/CVE-2021-47444
security-tracker.debian.org/tracker/CVE-2021-47444
www.cve.org/CVERecord?id=CVE-2021-47444