drm/virtio: bound EDID block reads to the response buffer
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.10.266, 5.15.217, 6.1.183, 6.6.148, 6.12.101, and 2 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: partial
Summary
In the Linux kernel, the following vulnerability has been resolved: drm/virtio: bound EDID block reads to the response buffer virtio_get_edid_block() validates the read offset only against the device-supplied resp->size field, never against the fixed-size resp->edid array. The EDID block index is driven by the device-supplied extension count, so a malicious virtio-gpu backend can advertise a large size together with a high block count and read far past the array into adjacent kernel memory, which is then surfaced in the parsed EDID (an out-of-bounds read / info leak). Also reject any read whose end exceeds the size of the edid array. Conforming EDID responses stay within the array and are unaffected.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- Linux Linux
From b4b01b4995fb15b55a2d067eb405917f5ab32709 · fixed in 65ce911f341ad8ff0c08922eff5bb6db75666eb0; From b4b01b4995fb15b55a2d067eb405917f5ab32709 · fixed in 64bedd2758eccbc74d39f7006a7ec16fa39dc901; From b4b01b4995fb15b55a2d067eb405917f5ab32709 · fixed in 3f506a85a905b080cadc029a1651a310479090a6; From b4b01b4995fb15b55a2d067eb405917f5ab32709 · fixed in 9fc2a017c5d597937e0c28b9a9669844aa796c42; From b4b01b4995fb15b55a2d067eb405917f5ab32709 · fixed in 2757e6e803092cf0aeaf4b735e16b5d3bdc705c5; From b4b01b4995fb15b55a2d067eb405917f5ab32709 · fixed in 35be0e2c6862abcd5e5f5445261f1fd910d4a9b4; From b4b01b4995fb15b55a2d067eb405917f5ab32709 · fixed in 375c1934ef0196d3b6d3a1eae3232bef8dae7bf7; From b4b01b4995fb15b55a2d067eb405917f5ab32709 · fixed in 4e1a53892ba7f8a3e1da6bfc53c83ae7c812dccd
- Linux Linux
5.0
- KernelLinux
From 5.0.0 · fixed in 5.10.266; From 5.11.0 · fixed in 5.15.217; From 5.16.0 · fixed in 6.1.183; From 6.2.0 · fixed in 6.6.148; From 6.7.0 · fixed in 6.12.101; From 6.13.0 · fixed in 6.18.42; From 6.19.0 · fixed in 7.1.6
References 8
git.kernel.org
- stable/c/65ce911f341ad8ff0c08922eff5bb6db75666eb0
- stable/c/64bedd2758eccbc74d39f7006a7ec16fa39dc901
- stable/c/3f506a85a905b080cadc029a1651a310479090a6
- stable/c/9fc2a017c5d597937e0c28b9a9669844aa796c42
- stable/c/2757e6e803092cf0aeaf4b735e16b5d3bdc705c5
- stable/c/35be0e2c6862abcd5e5f5445261f1fd910d4a9b4
- stable/c/375c1934ef0196d3b6d3a1eae3232bef8dae7bf7
- stable/c/4e1a53892ba7f8a3e1da6bfc53c83ae7c812dccd