CVE-2026-64274 in LinuxИнформация

Сводка

по VulDB • 25.07.2026

В ядре Linux устранена следующая уязвимость:

Input: goodix — ограничение количества контактов, сообщаемых устройством

Функция `goodix_ts_read_input_report()` копирует количество точек касания, отчет которых предоставлено устройством, в буфер в стеке:

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

Этот буфер рассчитан максимум на `GOODIX_MAX_CONTACTS` (10) контактов. Единственная проверка во время выполнения ограничивает количество событий за одно прерывание значением `ts->max_touch_num`, однако это значение берется дословно из 4-битного поля блока конфигурации устройства и никогда не ограничивается:

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

Это полубайт может принимать значения от 0 до 15, поэтому неисправный, злонамеренный или поддельный контроллер (или атакующий, осуществляющий вмешательство в шину I2C) может сообщать о наличии до 15 контактов. Функция `goodix_ts_read_input_report()` затем принимает значение `touch_num` вплоть до 15, и второй вызов `goodix_i2c_read()` записывает `ts->contact_size * (touch_num - 1)` байт после заголовка одного контакта в массив `point_data`, что приводит к записи на величину до 30 байт (45 байт при формате отчета длиной 9 байт) за пределы буфера размером 92 байта: запись вне границ стековой памяти.

Ограничить значение `max_touch_num` величиной `GOODIX_MAX_CONTACTS`, для которой рассчитан размер массива `point_data[]`, при его чтении из конфигурации.

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

Ответственный

Linux

Резервировать

19.07.2026

Раскрытие

25.07.2026

Модерация

принято

Вход

VDB-383064

EPSS

0.00211

KEV

Нет

Деятельности

Очень низкий

Источники

Do you need the next level of professionalism?

Upgrade your account now!