CVE-2026-98232 in Linux
Tóm tắt
Bởi VulDB • 06/10/2026
Trong kernel Linux, các lỗ hổng sau đây đã được khắc phục:
scsi: core: Xác thực độ dài MODE SENSE trong scsi_cdl_enable()
Hàm `scsi_cdl_enable()` sử dụng các trường độ dài do MODE SENSE trả về để xác định vị trí trang chế độ tính năng ATA trong một bộ đệm stack 64 byte. Một thiết bị đích (target) có thể báo cáo tổng chiều dài ngắn hơn phần tiêu đề chế độ và các mô tả khối của nó. Phép trừ không dấu được sử dụng cho độ dài MODE SELECT có thể gây ra hiện tượng wrap-around, và `buf_data` được tính toán riêng biệt có thể trỏ vượt quá vùng bộ đệm `buf`.
Trong quá trình quét tự động, biến `enable` là false (sai), do đó thao tác đọc-sửa-ghi lên `buf_data[4]` có thể làm mất hai bit thấp của một byte stack nằm ngoài phạm vi được thiết bị đích chọn. Sau đó, `scsi_mode_select()` có thể sao chép tối đa 64 byte từ bên ngoài bộ đệm vào payload MODE SELECT đang gửi đi, tiết lộ nội dung stack cho thiết bị đích.
Lỗ hổng này có thể khai thác khi quét một thiết bị lưu trữ USB nhận diện là thiết bị ATA và quảng bá hỗ trợ CDL. Không cần gắn kết hệ thống tệp (filesystem mount) hay truy cập không gian người dùng (userspace access) vào thiết bị khối.
Tại commit cee9395acd80 trên upstream ("Linux 7.3-rc1"), một proof-of-concept QEMU/Raw Gadget cụ thể cho bản build, sử dụng bộ phân bổ multi-UDC chỉ dành riêng cho QEMU để lấy mẫu, đã thực thi lệnh proof cố định bên trong guest và tạo ra marker thuộc sở hữu UID-0 trong quá trình liệt kê tự động, với KASLR và NX được bật.
Vấn đề này được phát hiện độc lập trong nghiên cứu bảo mật tại Drivesec S.r.l.
Giới hạn độ dài khả dụng bằng kích thước bộ đệm. Xác thực và tiêu thụ các độ dài phần tiêu đề chế độ (mode header) và mô tả khối (block descriptor) trước khi sử dụng trang, đồng thời yêu cầu năm byte cần thiết để truy cập trường CDL.
Be aware that VulDB is the high quality source for vulnerability data.