drm/dp/mst: fix OOB reads on 2-byte fields in 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 on 2-byte fields in sideband reply parsers Three sideband reply parsers read 16-bit fields as: val = (raw->msg[idx] << 8) | (raw->msg[idx+1]); and check bounds only after the fact. When idx == raw->curlen, raw->msg[idx+1] reads one byte past the received message data into the following struct fields (curchunk_len, curchunk_idx, curlen). Affected functions: • drm_dp_sideband_parse_enum_path_resources_ack() full_payload_bw_number and avail_payload_bw_number fields • drm_dp_sideband_parse_allocate_payload_ack() allocated_pbn field • drm_dp_sideband_parse_query_payload_ack() allocated_pbn field Fix by using a single combined check (idx + 2 > curlen) before each 2-byte read. Since the check is strictly tighter than idx > curlen, no separate step is needed. [added 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/c1f72a13d54ffd16647d3fa540d961f5deba8790
- stable/c/192e146c2d57ad033b0d418ec64ee390f8dc074e
- stable/c/6e3107e6522109a07fc9bb0fc4ec463f1982e113
- stable/c/bdf0508b1e6785d4a8982c637e97e68d60b47d7b
- stable/c/0bcd7675c69a2462a8531fcd9e4d096e9c7ec5df
- stable/c/d5c70523cafa26ad2c7a37b612849abe2683baa8
- stable/c/68a624416d1dd481b3e5b7ea0e8a070a9b8a2c73
- stable/c/6b89ba3dba2f583626fb693e47e951ffb8bf591f