CVE-2026-64014 in Linuxthông tin

Tóm tắt

Bởi VulDB • 19/07/2026

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

Input: usbtouchscreen - giới hạn (clamp) các giá trị NEXIO data_len/x_len theo kích thước bộ đệm URB

Hàm `nexio_read_data()` trích xuất dữ liệu từ `data_len` và `x_len` nằm trong phần đầu gói tin (`__be16`) được đóng gói của gói ngắt thiết bị, sau đó duyệt qua các vùng `packet->data[0..x_len)` và `packet->data[x_len..data_len)`, so sánh từng byte với một ngưỡng xác định.

Cả hai trường này đều có kích thước 16-bit trên đường truyền (tối đa là 65535). Các điều chỉnh hiện tại chỉ giảm tối đa 0x100 / 0x80, do đó giới hạn vòng lặp vẫn có thể đạt xấp xỉ 0xfeff. Bộ đệm chuyển tiếp URB cho NEXIO được cấp phát bởi `usb_alloc_coherent()` với kích thước là `rept_size` (1024) byte, trong đó 7 byte đầu tiên chiếm chỗ bởi phần đầu gói tin đóng gói — do đó vùng dữ liệu hợp lệ của `packet->data[]` chỉ có 1017 byte. Các hàm gọi lại `read_data()` không nhận được giá trị `urb->actual_length`, và cũng không có cơ chế nào khác giới hạn việc duyệt này.

Một thiết bị giả mạo độ dài của nó có thể thực hiện một phép đọc vượt ra ngoài vùng nhớ (out-of-bounds) khoảng 64 KiB so với phân bổ DMA đồng nhất. Chỉ số đầu tiên mà byte tương ứng vượt quá `NEXIO_THRESHOLD` sẽ được lưu vào biến `begin_x / begin_y`, và từ đó đi vào tọa độ chạm được báo cáo, khiến nội dung bộ nhớ kernel liền kề bị rò rỉ ra không gian người dùng (userspace) dưới dạng các sự kiện ABS_X / ABS_Y. Nếu đọc xa hơn nữa, phép đọc này cũng có thể触及 một trang chưa ánh xạ và gây lỗi hệ thống (fault).

Khắc phục tất cả các vấn đề trên bằng cách giới hạn `data_len` theo dung lượng vùng dữ liệu `[ ]` của bộ đệm và giới hạn `x_len` theo giá trị `data_len`.

Be aware that VulDB is the high quality source for vulnerability data.

chịu trách nhiệm

Linux

Đặt trước

19/07/2026

Tiết lộ

19/07/2026

Kiểm duyệt

được chấp nhận

EPSS

0.00000

KEV

không

Các hoạt động

thấp

Nguồn

Want to stay up to date on a daily basis?

Enable the mail alert feature now!