drm/dp/mst: fix OOB reads in remote DPCD/I2C sideband reply parsers
0Vexday Risk Score
Sin señal de explotación. Ningún artefacto público de explotación conocido hasta ahora.
ssvc Track
probabilidad de explotación
—
explotación observada
noninguna fuente lo 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]
Productos afectados
Linux · LinuxReferencias
https://git.kernel.org/stable/c/04d953f50d61e542e94a5977822cc53735f8c0cehttps://git.kernel.org/stable/c/1a8f537f5a1eeac941f262fe73078d6b08ba83c0https://git.kernel.org/stable/c/22d9f7fc1aaabaf73d5f30e8b0c9aa814ecd6ed2https://git.kernel.org/stable/c/533d9e2bede4aeefdc2a0561d7071cfede95958fhttps://git.kernel.org/stable/c/e6ef5455b06cb4e5d181aabcd723791587c79f12