Описание
In the Linux kernel, the following vulnerability has been resolved: drm/dp/mst: fix buffer overflows in sideband chunk accumulation drm_dp_sideband_append_payload() has three related bugs when processing device-provided sideband reply data:
- Zero-length curchunk_len underflow: msg_len is a 6-bit field taken directly from the DP sideband header. If a device sends msg_len=0, curchunk_len is set to zero. The condition (curchunk_idx >= curchunk_len) is immediately true, and curchunk_len-1 wraps to 255 (u8 underflow). drm_dp_msg_data_crc4() reads 255 bytes from chunk[48], then memcpy() writes 255 bytes into msg[], both far out of bounds.
- chunk[48] overflow: curchunk_len can reach 63 (6-bit field). chunk[] is only 48 bytes. Multi-iteration payload assembly appends 16-byte blocks until curchunk_idx reaches curchunk_len, writing up to 15 bytes past the end of chunk[] into msg[].
- msg[256] overflow: each chunk contributes (curchunk_len-1) bytes to
msg[]. No check ensures curlen + (curchunk_len-1) stays within msg[256],
so the memcpy can spill into adjacent struct fields.
All three are reachable from any DP MST device that can forge sideband
reply messages on a physical connection.
A flaw was found in the Linux kernel's DisplayPort (DP) Multi-Stream Transport (MST) subsystem. This vulnerability involves multiple buffer overflows within thedrm_dp_sideband_append_payload()function when handling data from connected devices. A physically connected, malicious DP MST device can exploit this by sending specially crafted messages, leading to memory corruption. This could potentially allow an attacker to cause system instability or execute unauthorized code.
Отчет
A moderate security impact flaw was found in the Linux kernel's DisplayPort (DP) Multi-Stream Transport (MST) subsystem. The drm_dp_sideband_append_payload() function contains multiple buffer overflow conditions when accumulating sideband reply chunks from a connected device: a zero-length message length field causes an integer underflow that leads to out-of-bounds reads and writes of up to 255 bytes, a chunk length field of up to 63 can write past the end of the 48-byte chunk buffer, and unbounded payload accumulation can overflow the 256-byte message buffer into adjacent memory. A physically connected malicious DP MST device can exploit these flaws by sending forged sideband reply messages, resulting in kernel memory corruption that can crash the system or potentially lead to arbitrary code execution. Red Hat rates this flaw as moderate security impact because exploitation requires physical access to connect a malicious DisplayPort device. The vulnerable code was introduced upstream in the 3.17 kernel, so the kernel and kernel-rt packages in Red Hat Enterprise Linux 6 and 7 are not affected because the vulnerable code is not present. Red Hat Enterprise Linux 8, 9, and 10 (kernel and kernel-rt) and Red Hat In-Vehicle OS 2 (kernel) are affected, and fixes are being pursued through the standard delegated Red Hat kernel maintenance process.
Меры по смягчению последствий
Prevent the 'drm_dp_mst' kernel module from loading to mitigate this vulnerability. This will disable DisplayPort Multi-Stream Transport functionality, which may affect multi-monitor setups using DisplayPort.
To blacklist the module, create a file named /etc/modprobe.d/blacklist-drm_dp_mst.conf with the following content:
Then, regenerate the initramfs and reboot the system for the changes to take effect:
A system reboot is required for the module to be unloaded and the mitigation to be active. This may impact display functionality if DP MST is in use.
Затронутые пакеты
| Платформа | Пакет | Состояние | Рекомендация | Релиз |
|---|---|---|---|---|
| Red Hat Enterprise Linux 6 | kernel | Not affected | ||
| Red Hat Enterprise Linux 7 | kernel | Not affected | ||
| Red Hat Enterprise Linux 7 | kernel-rt | Not affected | ||
| Red Hat Enterprise Linux 9 | kernel-rt | Affected | ||
| Red Hat Enterprise Linux for NVIDIA 26 | kernel | Not affected | ||
| Red Hat Enterprise Linux 10 | kernel | Fixed | RHSA-2026:88477 | 23.10.2026 |
| Red Hat Enterprise Linux 8 | kernel-rt | Fixed | RHSA-2026:82806 | 14.10.2026 |
| Red Hat Enterprise Linux 8 | kernel | Fixed | RHSA-2026:82807 | 14.10.2026 |
| Red Hat Enterprise Linux 9 | kernel | Fixed | RHSA-2026:81552 | 13.10.2026 |
| Red Hat Enterprise Linux 9 | kernel | Fixed | RHSA-2026:81552 | 13.10.2026 |
Показывать по
Дополнительная информация
Статус:
7.3 High
CVSS3
Связанные уязвимости
In the Linux kernel, the following vulnerability has been resolved: drm/dp/mst: fix buffer overflows in sideband chunk accumulation drm_dp_sideband_append_payload() has three related bugs when processing device-provided sideband reply data: 1. Zero-length curchunk_len underflow: msg_len is a 6-bit field taken directly from the DP sideband header. If a device sends msg_len=0, curchunk_len is set to zero. The condition (curchunk_idx >= curchunk_len) is immediately true, and curchunk_len-1 wraps to 255 (u8 underflow). drm_dp_msg_data_crc4() reads 255 bytes from chunk[48], then memcpy() writes 255 bytes into msg[], both far out of bounds. 2. chunk[48] overflow: curchunk_len can reach 63 (6-bit field). chunk[] is only 48 bytes. Multi-iteration payload assembly appends 16-byte blocks until curchunk_idx reaches curchunk_len, writing up to 15 bytes past the end of chunk[] into msg[]. 3. msg[256] overflow: each chunk contributes (curchunk_len-1) bytes to msg[]. No check ensures curlen + (cur...
In the Linux kernel, the following vulnerability has been resolved: drm/dp/mst: fix buffer overflows in sideband chunk accumulation drm_dp_sideband_append_payload() has three related bugs when processing device-provided sideband reply data: 1. Zero-length curchunk_len underflow: msg_len is a 6-bit field taken directly from the DP sideband header. If a device sends msg_len=0, curchunk_len is set to zero. The condition (curchunk_idx >= curchunk_len) is immediately true, and curchunk_len-1 wraps to 255 (u8 underflow). drm_dp_msg_data_crc4() reads 255 bytes from chunk[48], then memcpy() writes 255 bytes into msg[], both far out of bounds. 2. chunk[48] overflow: curchunk_len can reach 63 (6-bit field). chunk[] is only 48 bytes. Multi-iteration payload assembly appends 16-byte blocks until curchunk_idx reaches curchunk_len, writing up to 15 bytes past the end of chunk[] into msg[]. 3. msg[256] overflow: each chunk contributes (curchunk_len-1) bytes to msg[]. N
drm/dp/mst: fix buffer overflows in sideband chunk accumulation
In the Linux kernel, the following vulnerability has been resolved: d ...
In the Linux kernel, the following vulnerability has been resolved: drm/dp/mst: fix buffer overflows in sideband chunk accumulation drm_dp_sideband_append_payload() has three related bugs when processing device-provided sideband reply data: 1. Zero-length curchunk_len underflow: msg_len is a 6-bit field taken directly from the DP sideband header. If a device sends msg_len=0, curchunk_len is set to zero. The condition (curchunk_idx >= curchunk_len) is immediately true, and curchunk_len-1 wraps to 255 (u8 underflow). drm_dp_msg_data_crc4() reads 255 bytes from chunk[48], then memcpy() writes 255 bytes into msg[], both far out of bounds. 2. chunk[48] overflow: curchunk_len can reach 63 (6-bit field). chunk[] is only 48 bytes. Multi-iteration payload assembly appends 16-byte blocks until curchunk_idx reaches curchunk_len, writing up to 15 bytes past the end of chunk[] into msg[]. 3. msg[256] overflow: each chunk contributes (curchunk_len-1) bytes to msg[]...
7.3 High
CVSS3