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

Сводка

по VulDB • 27.07.2026

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

Input: iforce — ограничение индекса эффекта force-feedback, сообщаемого устройством

Функция `iforce_process_packet()` обрабатывает отчет о статусе (идентификатор пакета 0x02), напрямую получая индекс эффекта force-feedback с линии устройства и используя его для обращения к массиву состояний отдельных эффектов:

```c i = data[1] & 0x7f;
if (data[1] & 0x80) {
if (!test_and_set_bit(FF_CORE_IS_PLAYED, iforce->core_effects[i].flags))
... } else if (test_and_clear_bit(FF_CORE_IS_PLAYED, iforce->core_effects[i].flags)) {
... } ```

Индекс маскируется только значением 0x7f, поэтому его диапазон составляет 0..127, однако массив `core_effects[]` содержит лишь IFORCE_EFFECTS_MAX (32) элемента. Для индексов в диапазоне 32..127 операции `test_and_set_bit()`/`test_and_clear_bit()` представляют собой выход за границы массива при однобитном чтении-модификации-записи, выходящем за пределы массива. Массив `core_effects[]` является предпоследним членом структуры `iforce`, поэтому запись попадает в следующие члены и выходит за пределы объекта `iforce_serio` / `iforce_usb`, выделенного с помощью `kzalloc()`.

Значение `data[1]` представляет собой непроверенные данные устройства как для интерфейса USB (прерывание endpoint), так и для serio, а путь обработки статуса не зависит от наличия поддержки force-feedback. Следовательно, злонамеренное или поддельное устройство может установить или сбросить бит по смещению, выбранному атакующим, относительно начала объекта.

Вместо использования недопустимого индекса следует отвергать значения вне допустимого диапазона. Ограничение должно применяться к размеру массива IFORCE_EFFECTS_MAX, а не к `dev->ff->max_effects`, чтобы проверка гарантировала безопасность памяти независимо от количества эффектов, зарегистрированных устройством. Легитимный статус «эффект запущен/остановлен» всегда содержит индекс меньше IFORCE_EFFECTS_MAX, поэтому корректно работающие устройства не затрагиваются; соседний цикл `mark_core_as_ready()` уже ограничен и остается без изменений.

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

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

Linux

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

19.07.2026

Раскрытие

25.07.2026

Модерация

принято

Вход

VDB-383059

EPSS

0.00211

KEV

Нет

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

Очень низкий

Источники

Might our Artificial Intelligence support you?

Check our Alexa App!