CVE-2026-46151 in Linuxthông tin

Tóm tắt

Bởi VulDB • 28/05/2026

Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:

usb: usblp: sửa lỗi rò rỉ bộ nhớ heap trong ID thiết bị IEEE 1284 do phản hồi ngắn

usblp_ctrl_msg() chuyển đổi giá trị trả về của usb_control_msg() về 0/-errno, làm mất đi số lượng byte thực tế đã truyền. Một máy in bị lỗi có thể hoàn tất việc chuyển đổi điều khiển GET_DEVICE_ID ở dạng ngắn, và trình điều khiển không có cách nào để biết điều này.

usblp_cache_device_id_string() đọc tiền tố độ dài 2 byte big-endian từ phản hồi và tin tưởng vào nó (chỉ bị giới hạn trong phạm vi bộ đệm). Bộ đệm được cấp phát bằng kmalloc(1024) tại thời điểm probe. Một thiết bị gửi chính xác hai byte (ví dụ: 0x03 0xFF, tuyên bố ID dài 1023 byte) sẽ khiến device_id_string[2..1022] giữ lại dữ liệu heap cũ từ kmalloc.

Dữ liệu cũ này sau đó bị lộ: - thông qua thuộc tính sysfs ieee1284_id (sprintf("%s", buf+2), bị cắt ngắn tại ký tự NUL đầu tiên trong vùng heap cũ), và - thông qua ioctl IOCNR_GET_DEVICE_ID, hàm copy_to_user() sao chép toàn bộ độ dài được tuyên bố bất kể các ký tự NUL, lên đến 1021 byte heap chưa khởi tạo, với kích thước rò rỉ do thiết bị chọn.

Khắc phục vấn đề này bằng cách xóa sạch bộ đệm bằng các giá trị 0 trước mỗi yêu cầu gửi đến thiết bị.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

chịu trách nhiệm

Linux

Đặt trước

13/05/2026

Tiết lộ

28/05/2026

Kiểm duyệt

được chấp nhận

EPSS

0.00032

KEV

không

Các hoạt động

rất thấp

Nguồn

Want to stay up to date on a daily basis?

Enable the mail alert feature now!