CVE-2026-64546

drm/edid: fix OOB read in drm_parse_tiled_block()

State
Published
Severity
7.1 High
Published
Jul 27, 2026
Updated
Oct 19, 2026
Reserved
Jul 19, 2026

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

drm/edid: fix OOB read in drm_parse_tiled_block()

drm_parse_tiled_block() casts the DisplayID block to a struct displayid_tiled_block and reads the full fixed layout up to tile->topology_id[7] without checking block->num_bytes. The DisplayID iterator only validates the declared payload length, so a crafted EDID can advertise a tiled-display block (tag DATA_BLOCK_TILED_DISPLAY, or DATA_BLOCK_2_TILED_DISPLAY_TOPOLOGY for v2.0) with a small num_bytes at the end of a DisplayID extension. The read then runs past the end of the exact-sized kmemdup()'d EDID allocation, a heap out-of-bounds read.

Reject blocks shorter than the spec's 22-byte tiled payload before reading the fixed struct, as drm_parse_vesa_mso_data() already does.

BUG: KASAN: slab-out-of-bounds in drm_edid_connector_update Read of size 2 at addr ffff888010077700 by task exploit/147 dump_stack_lvl (lib/dump_stack.c:94 ...) print_report (mm/kasan/report.c:378 ...) kasan_report (mm/kasan/report.c:595) drm_edid_connector_update (drivers/gpu/drm/drm_edid.c:7581) bochs_connector_helper_get_modes (drivers/gpu/drm/tiny/bochs.c:574) drm_helper_probe_single_connector_modes (drivers/gpu/drm/drm_probe_helper.c:426) status_store (drivers/gpu/drm/drm_sysfs.c:219) ... vfs_write (fs/read_write.c:595 fs/read_write.c:688) ksys_write (fs/read_write.c:740)

Scores

CVSSScoreVectorSource
3.17.1 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:HLinux

Weaknesses

Affected Products

ProductVersions
LinuxLinux
  • 40d9b043a89e2301e1f97ade055a73ecc28e9afe to before c4ab04ca1bbf87eefa9fec5c80e1880450d2e7c0Affected
  • 40d9b043a89e2301e1f97ade055a73ecc28e9afe to before 9acd5c1ddc17ca4c5ffa0c373e3fdf480506e061Affected
  • 40d9b043a89e2301e1f97ade055a73ecc28e9afe to before 157727131ce8a52d8d9bc676c372ef82db6436c4Affected
  • 40d9b043a89e2301e1f97ade055a73ecc28e9afe to before bfa05d89dc3ca3fb1a9099ef5185549a5ec8490dAffected
  • 40d9b043a89e2301e1f97ade055a73ecc28e9afe to before 4f5484d25f85ad6c989bad5f6a43450cecfcfd28Affected
  • 40d9b043a89e2301e1f97ade055a73ecc28e9afe to before 9cc0f8e63e8c34cf43def35cbd305ba711181a1fAffected
  • 40d9b043a89e2301e1f97ade055a73ecc28e9afe to before 4137e1ecec9c8cb6c4fcee28ffabbbc7409eb7fbAffected
  • 40d9b043a89e2301e1f97ade055a73ecc28e9afe to before faaa1e1155833e7d4ce7e3cfaf64c0d636b190dbAffected
LinuxLinux
  • 3.19Affected
  • before 3.19Not affected
  • 5.10.261 through 5.10.*Not affected
  • 5.15.212 through 5.15.*Not affected
  • 6.1.178 through 6.1.*Not affected
  • 6.6.145 through 6.6.*Not affected
  • 6.12.97 through 6.12.*Not affected
  • 6.18.40 through 6.18.*Not affected
  • 7.1.5 through 7.1.*Not affected
  • 7.2 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.