drm/dp/mst: fix OOB reads in remote DPCD/I2C sideband reply parsers
- 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
- 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/dp/mst: fix OOB reads in remote DPCD/I2C sideband reply parsers drm_dp_sideband_parse_remote_dpcd_read() reads num_bytes from the raw message and then unconditionally does: memcpy(bytes, &raw->msg[idx], num_bytes); without checking that idx + num_bytes <= raw->curlen. raw->msg[] is 256 bytes; if a malicious or misbehaving MST hub sets num_bytes larger than the remaining payload, the memcpy reads past the received data into whatever follows in raw->msg[]. drm_dp_sideband_parse_remote_i2c_read_ack() has the same flaw (noted with a /* TODO check */ comment since the code was introduced). Fix both functions by using a single combined check (idx + num_bytes > curlen) before each memcpy. Since num_bytes is u8, it is always >= 0, so this strictly subsumes the simpler idx > curlen form and no separate step is needed. [added missing fixes tag]
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
Version range not reported
- Linux Linux
3.17
References 8
git.kernel.org
- stable/c/185de1d74e658e2edb723ba76fa61903f77d8a68
- stable/c/d7b9b1e33b4ed8c48d4db6e6e21c257ebbbb2586
- stable/c/c2fbda0fe0163c55ba3820ee6cea0c6b43622eda
- stable/c/22d9f7fc1aaabaf73d5f30e8b0c9aa814ecd6ed2
- stable/c/04d953f50d61e542e94a5977822cc53735f8c0ce
- stable/c/533d9e2bede4aeefdc2a0561d7071cfede95958f
- stable/c/e6ef5455b06cb4e5d181aabcd723791587c79f12
- stable/c/1a8f537f5a1eeac941f262fe73078d6b08ba83c0