drm/dp/mst: fix OOB reads in remote DPCD/I2C sideband reply parsers
3Vexday Risk Score
Sem sinal de exploração. Nenhum artefato público de exploração conhecido até agora.
ssvc Trackepss 0.2%
probabilidade de exploração
0.2%top 92% das CVEs
exploração observada
nãonenhuma fonte reporta
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]
Produtos afetados
Linux · LinuxReferências
https://git.kernel.org/stable/c/04d953f50d61e542e94a5977822cc53735f8c0cehttps://git.kernel.org/stable/c/185de1d74e658e2edb723ba76fa61903f77d8a68https://git.kernel.org/stable/c/1a8f537f5a1eeac941f262fe73078d6b08ba83c0https://git.kernel.org/stable/c/22d9f7fc1aaabaf73d5f30e8b0c9aa814ecd6ed2https://git.kernel.org/stable/c/533d9e2bede4aeefdc2a0561d7071cfede95958fhttps://git.kernel.org/stable/c/c2fbda0fe0163c55ba3820ee6cea0c6b43622edahttps://git.kernel.org/stable/c/d7b9b1e33b4ed8c48d4db6e6e21c257ebbbb2586https://git.kernel.org/stable/c/e6ef5455b06cb4e5d181aabcd723791587c79f12