{"id":"CVE-2026-68278","state":"PUBLISHED","title":"drm/dp/mst: fix buffer overflows in sideband chunk accumulation","description":"In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/dp/mst: fix buffer overflows in sideband chunk accumulation\n\ndrm_dp_sideband_append_payload() has three related bugs when processing\ndevice-provided sideband reply data:\n\n1. Zero-length curchunk_len underflow: msg_len is a 6-bit field taken\n   directly from the DP sideband header. If a device sends msg_len=0,\n   curchunk_len is set to zero. The condition (curchunk_idx >= curchunk_len)\n   is immediately true, and curchunk_len-1 wraps to 255 (u8 underflow).\n   drm_dp_msg_data_crc4() reads 255 bytes from chunk[48], then memcpy()\n   writes 255 bytes into msg[], both far out of bounds.\n\n2. chunk[48] overflow: curchunk_len can reach 63 (6-bit field). chunk[] is\n   only 48 bytes. Multi-iteration payload assembly appends 16-byte blocks\n   until curchunk_idx reaches curchunk_len, writing up to 15 bytes past\n   the end of chunk[] into msg[].\n\n3. msg[256] overflow: each chunk contributes (curchunk_len-1) bytes to\n   msg[]. No check ensures curlen + (curchunk_len-1) stays within msg[256],\n   so the memcpy can spill into adjacent struct fields.\n\nAll three are reachable from any DP MST device that can forge sideband\nreply messages on a physical connection.","publishedAt":"2026-08-10T12:01:54.285Z","updatedAt":"2026-08-23T12:46:15.450Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"ad7f8a1f9ced7f049f9b66d588723f243a7034cd","status":"affected","lessThan":"ef2ecb6cf268debf3890df99fea01b6452dcf78e","versionType":"git"},{"version":"ad7f8a1f9ced7f049f9b66d588723f243a7034cd","status":"affected","lessThan":"d4e05dedb252ed3e540a0c9be511e427f098110a","versionType":"git"},{"version":"ad7f8a1f9ced7f049f9b66d588723f243a7034cd","status":"affected","lessThan":"4d5109075a787de28c9e89940f9dee45269f91fa","versionType":"git"},{"version":"ad7f8a1f9ced7f049f9b66d588723f243a7034cd","status":"affected","lessThan":"53937a2787d29c7a460e984dc4f20ff6ac91dc65","versionType":"git"},{"version":"ad7f8a1f9ced7f049f9b66d588723f243a7034cd","status":"affected","lessThan":"ef0dbcc200c3389f1f781ab181932a97e54b51af","versionType":"git"},{"version":"ad7f8a1f9ced7f049f9b66d588723f243a7034cd","status":"affected","lessThan":"1e5827839ad0ceb0079d1560c321fa3656b54f21","versionType":"git"},{"version":"ad7f8a1f9ced7f049f9b66d588723f243a7034cd","status":"affected","lessThan":"a6366b551079c79bf7bdbadd74c97358bcfe2d58","versionType":"git"},{"version":"ad7f8a1f9ced7f049f9b66d588723f243a7034cd","status":"affected","lessThan":"55bd5e685bda455b9b50c835f8c8442d52a344a3","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/gpu/drm/display/drm_dp_mst_topology.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.17","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.17","versionType":"semver"},{"version":"5.10.266","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.217","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.183","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.148","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.101","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.42","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.6","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/gpu/drm/display/drm_dp_mst_topology.c"]}],"references":["https://git.kernel.org/stable/c/ef2ecb6cf268debf3890df99fea01b6452dcf78e","https://git.kernel.org/stable/c/d4e05dedb252ed3e540a0c9be511e427f098110a","https://git.kernel.org/stable/c/4d5109075a787de28c9e89940f9dee45269f91fa","https://git.kernel.org/stable/c/53937a2787d29c7a460e984dc4f20ff6ac91dc65","https://git.kernel.org/stable/c/ef0dbcc200c3389f1f781ab181932a97e54b51af","https://git.kernel.org/stable/c/1e5827839ad0ceb0079d1560c321fa3656b54f21","https://git.kernel.org/stable/c/a6366b551079c79bf7bdbadd74c97358bcfe2d58","https://git.kernel.org/stable/c/55bd5e685bda455b9b50c835f8c8442d52a344a3"],"weaknesses":[],"ingestedAt":"2026-10-29T20:12:49.727Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/68xxx/CVE-2026-68278.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-68278","state":"PUBLISHED","datePublished":"2026-08-10T12:01:54.285Z","dateUpdated":"2026-08-23T12:46:15.450Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-07-30T09:28:09.379Z"},"containers":{"cna":{"title":"drm/dp/mst: fix buffer overflows in sideband chunk accumulation","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/dp/mst: fix buffer overflows in sideband chunk accumulation\n\ndrm_dp_sideband_append_payload() has three related bugs when processing\ndevice-provided sideband reply data:\n\n1. Zero-length curchunk_len underflow: msg_len is a 6-bit field taken\n   directly from the DP sideband header. If a device sends msg_len=0,\n   curchunk_len is set to zero. The condition (curchunk_idx >= curchunk_len)\n   is immediately true, and curchunk_len-1 wraps to 255 (u8 underflow).\n   drm_dp_msg_data_crc4() reads 255 bytes from chunk[48], then memcpy()\n   writes 255 bytes into msg[], both far out of bounds.\n\n2. chunk[48] overflow: curchunk_len can reach 63 (6-bit field). chunk[] is\n   only 48 bytes. Multi-iteration payload assembly appends 16-byte blocks\n   until curchunk_idx reaches curchunk_len, writing up to 15 bytes past\n   the end of chunk[] into msg[].\n\n3. msg[256] overflow: each chunk contributes (curchunk_len-1) bytes to\n   msg[]. No check ensures curlen + (curchunk_len-1) stays within msg[256],\n   so the memcpy can spill into adjacent struct fields.\n\nAll three are reachable from any DP MST device that can forge sideband\nreply messages on a physical connection."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"ad7f8a1f9ced7f049f9b66d588723f243a7034cd","status":"affected","lessThan":"ef2ecb6cf268debf3890df99fea01b6452dcf78e","versionType":"git"},{"version":"ad7f8a1f9ced7f049f9b66d588723f243a7034cd","status":"affected","lessThan":"d4e05dedb252ed3e540a0c9be511e427f098110a","versionType":"git"},{"version":"ad7f8a1f9ced7f049f9b66d588723f243a7034cd","status":"affected","lessThan":"4d5109075a787de28c9e89940f9dee45269f91fa","versionType":"git"},{"version":"ad7f8a1f9ced7f049f9b66d588723f243a7034cd","status":"affected","lessThan":"53937a2787d29c7a460e984dc4f20ff6ac91dc65","versionType":"git"},{"version":"ad7f8a1f9ced7f049f9b66d588723f243a7034cd","status":"affected","lessThan":"ef0dbcc200c3389f1f781ab181932a97e54b51af","versionType":"git"},{"version":"ad7f8a1f9ced7f049f9b66d588723f243a7034cd","status":"affected","lessThan":"1e5827839ad0ceb0079d1560c321fa3656b54f21","versionType":"git"},{"version":"ad7f8a1f9ced7f049f9b66d588723f243a7034cd","status":"affected","lessThan":"a6366b551079c79bf7bdbadd74c97358bcfe2d58","versionType":"git"},{"version":"ad7f8a1f9ced7f049f9b66d588723f243a7034cd","status":"affected","lessThan":"55bd5e685bda455b9b50c835f8c8442d52a344a3","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/gpu/drm/display/drm_dp_mst_topology.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.17","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.17","versionType":"semver"},{"version":"5.10.266","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.217","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.183","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.148","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.101","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.42","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.6","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/gpu/drm/display/drm_dp_mst_topology.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/ef2ecb6cf268debf3890df99fea01b6452dcf78e"},{"url":"https://git.kernel.org/stable/c/d4e05dedb252ed3e540a0c9be511e427f098110a"},{"url":"https://git.kernel.org/stable/c/4d5109075a787de28c9e89940f9dee45269f91fa"},{"url":"https://git.kernel.org/stable/c/53937a2787d29c7a460e984dc4f20ff6ac91dc65"},{"url":"https://git.kernel.org/stable/c/ef0dbcc200c3389f1f781ab181932a97e54b51af"},{"url":"https://git.kernel.org/stable/c/1e5827839ad0ceb0079d1560c321fa3656b54f21"},{"url":"https://git.kernel.org/stable/c/a6366b551079c79bf7bdbadd74c97358bcfe2d58"},{"url":"https://git.kernel.org/stable/c/55bd5e685bda455b9b50c835f8c8442d52a344a3"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-23T12:46:15.450Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.17","versionEndExcluding":"5.10.266"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.17","versionEndExcluding":"5.15.217"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.17","versionEndExcluding":"6.1.183"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.17","versionEndExcluding":"6.6.148"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.17","versionEndExcluding":"6.12.101"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.17","versionEndExcluding":"6.18.42"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.17","versionEndExcluding":"7.1.6"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.17","versionEndExcluding":"7.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}