drm/gud: fix out-of-bounds write in gud_plane_atomic_check()
- 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.15.222, 6.1.189, 6.6.158, 6.12.112, 6.18.54, and 1 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
Summary
In the Linux kernel, the following vulnerability has been resolved: drm/gud: fix out-of-bounds write in gud_plane_atomic_check() The plane property loop uses req->properties[num_properties + i] as write index while simultaneously incrementing `num_properties` inside the loop. At iteration i, num_properties has also incremented by i, so the write is done at `initial_num_properties + 2*i`, skipping every other index and advancing by 2 per iteration. With just 2 connector and 32 plane properties the last write happens at index 64, one slot past the end of the 64-slot (indices 0–63) allocation. A USB device can trigger OOB by advertising the maximum number of properties. Fix by dropping the redundant `+ i`; num_properties is already the correct running index, as gud_connector_fill_properties() fills the preceding slots.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 40e1a70b4aedf2859a1829991b48ef0ebe650bf2 · fixed in ee04903fe6a098160d20dde4fc5af4cb42846735; From 40e1a70b4aedf2859a1829991b48ef0ebe650bf2 · fixed in 4153a9e008f2512bd3cf90a319436865847369b9; From 40e1a70b4aedf2859a1829991b48ef0ebe650bf2 · fixed in 5f5e565410b4987e9663f599f9ab0c350f8338d4; From 40e1a70b4aedf2859a1829991b48ef0ebe650bf2 · fixed in 7e630edb22088df7aa0d55b02237a71e4c9a523d; From 40e1a70b4aedf2859a1829991b48ef0ebe650bf2 · fixed in 2c92af27ad23e2fbc0367b11a9027d36d94ef4b3; From 40e1a70b4aedf2859a1829991b48ef0ebe650bf2 · fixed in ea57100955c1c2a525ba1a98c18d9a05b25aeedb; From 40e1a70b4aedf2859a1829991b48ef0ebe650bf2 · fixed in 59ced288fcba9e91bd38e61a972ad782c4edb7d0
- Linux Linux
5.13
- KernelLinux
From 5.13.0 · fixed in 5.15.222; From 5.16.0 · fixed in 6.1.189; From 6.2.0 · fixed in 6.6.158; From 6.7.0 · fixed in 6.12.112; From 6.13.0 · fixed in 6.18.54; From 6.19.0 · fixed in 7.2.8
References 7
git.kernel.org
- stable/c/ee04903fe6a098160d20dde4fc5af4cb42846735
- stable/c/4153a9e008f2512bd3cf90a319436865847369b9
- stable/c/5f5e565410b4987e9663f599f9ab0c350f8338d4
- stable/c/7e630edb22088df7aa0d55b02237a71e4c9a523d
- stable/c/2c92af27ad23e2fbc0367b11a9027d36d94ef4b3
- stable/c/ea57100955c1c2a525ba1a98c18d9a05b25aeedb
- stable/c/59ced288fcba9e91bd38e61a972ad782c4edb7d0