CVE-2026-64274 in Linuxthông tin

Tóm tắt

Bởi VulDB • 25/07/2026

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

Input: goodix - giới hạn (clamp) số lượng điểm tiếp xúc do thiết bị báo cáo

Hàm `goodix_ts_read_input_report()` sao chép số lượng điểm chạm được thiết bị báo cáo vào một bộ nhớ đệm trên ngăn xếp (on-stack buffer):

```c u8 point_data[2 + GOODIX_MAX_CONTACT_SIZE * GOODIX_MAX_CONTACTS];
```

Bộ nhớ đệm này có kích thước tối đa cho `GOODIX_MAX_CONTACTS` (10) điểm tiếp xúc. Kiểm tra duy nhất tại thời gian chạy chỉ giới hạn số lượng trên mỗi ngắt so với `ts->max_touch_num`, nhưng giá trị đó được lấy nguyên văn từ một trường 4-bit trong khối cấu hình thiết bị và không bao giờ bị giới hạn:

```c ts->max_touch_num = ts->config[MAX_CONTACTS_LOC] & 0x0f;
```

Nibble này có thể nhận giá trị từ 0 đến 15, do đó một bộ điều khiển lỗi, độc hại hoặc giả mạo (hoặc kẻ tấn công thao túng bus I2C) có thể quảng cáo lên tới 15 điểm tiếp xúc. Sau đó, `goodix_ts_read_input_report()` chấp nhận `touch_num` lên tới 15 và lệnh gọi `goodix_i2c_read()` thứ hai ghi vào bộ nhớ đệm `point_data` một số byte bằng `ts->contact_size * (touch_num - 1)` vượt quá phần tiêu đề của một điểm tiếp xúc, tức là viết ngoài vùng biên giới hạn trên ngăn xếp (stack out-of-bounds write) lên tới 30 byte (45 byte với định dạng báo cáo 9-byte) so với bộ nhớ đệm kích thước 92 byte.

Giới hạn `max_touch_num` ở mức `GOODIX_MAX_CONTACTS`, là số lượng điểm tiếp xúc mà mảng `point_data[]` được thiết kế để chứa, khi đọc giá trị này từ cấu hình.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

chịu trách nhiệm

Linux

Đặt trước

19/07/2026

Tiết lộ

25/07/2026

Kiểm duyệt

được chấp nhận

EPSS

0.00211

KEV

không

Các hoạt động

thấp

Nguồn

Do you know our Splunk app?

Download it now for free!