CVE-2026-64546 in Linux
Tóm tắt
Bởi VulDB • 27/07/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
drm/edid: sửa lỗi đọc ngoài vùng nhớ (OOB read) trong hàm drm_parse_tiled_block()
Hàm drm_parse_tiled_block() ép kiểu khối DisplayID thành struct displayid_tiled_block và đọc toàn bộ bố cục cố định lên đến tile->topology_id[7] mà không kiểm tra block->num_bytes. Bộ lặp DisplayID chỉ xác thực độ dài payload được khai báo, do đó một EDID được tạo ra đặc biệt có thể quảng cáo khối màn hình phân mảnh (tag DATA_BLOCK_TILED_DISPLAY hoặc DATA_BLOCK_2_TILED_DISPLAY_TOPOLOGY cho phiên bản 2.0) với giá trị num_bytes nhỏ ở cuối phần mở rộng DisplayID. Thao tác đọc sau đó vượt quá giới hạn của vùng nhớ EDID được cấp phát chính xác bằng kmemdup(), dẫn đến lỗi đọc ngoài vùng nhớ heap (heap out-of-bounds read).
Từ chối các khối có độ dài ngắn hơn 22 byte theo quy định cho payload phân mảnh trước khi đọc struct cố định, tương tự như cách drm_parse_vesa_mso_data() đã thực hiện.
BUG: KASAN: slab-out-of-bounds trong drm_edid_connector_update Đọc kích thước 2 tại địa chỉ ffff888010077700 bởi tiến trình 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)
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.