Activity log
- Created & dismissed (max. allowed matches exceeded) suggestion
drm/dp/mst: fix OOB reads on 2-byte fields in sideband reply parsers
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]
References
Affected products
- <68a624416d1dd481b3e5b7ea0e8a070a9b8a2c73
- <0bcd7675c69a2462a8531fcd9e4d096e9c7ec5df
- <6b89ba3dba2f583626fb693e47e951ffb8bf591f
- <bdf0508b1e6785d4a8982c637e97e68d60b47d7b
- =<6.6.*
- <3.17
- =<*
- <d5c70523cafa26ad2c7a37b612849abe2683baa8
- =<6.18.*
- =<6.12.*
- ==3.17
- =<7.1.*