drm/dp/mst: fix OOB reads on 2-byte fields in sideband reply parsers
0Vexday Risk Score
Sem sinal de exploração. Nenhum artefato público de exploração conhecido até agora.
ssvc Track
probabilidade de exploração
—
exploração observada
nãonenhuma fonte reporta
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]
Produtos afetados
Linux · LinuxReferências
https://git.kernel.org/stable/c/0bcd7675c69a2462a8531fcd9e4d096e9c7ec5dfhttps://git.kernel.org/stable/c/68a624416d1dd481b3e5b7ea0e8a070a9b8a2c73https://git.kernel.org/stable/c/6b89ba3dba2f583626fb693e47e951ffb8bf591fhttps://git.kernel.org/stable/c/bdf0508b1e6785d4a8982c637e97e68d60b47d7bhttps://git.kernel.org/stable/c/d5c70523cafa26ad2c7a37b612849abe2683baa8