HID: rmi: fix OOB access with undersized RMI reports
Оценка Noroxi
Приоритет: Наблюдать (оценка срочности 35/100)
- В отслеживаемых источниках (CISA KEV, Exploit-DB, Metasploit, Nuclei, GitHub) нет публичного эксплойта или записей об эксплуатации.
- Вероятность эксплуатации в ближайшие 30 дней: 0,34% (FIRST EPSS).
- Может быть вызвана кем-либо из того же сегмента сети. Учётная запись или пароль не требуются. Действия пользователя не требуются. Особые условия не требуются; воспроизводится стабильно.
- Исправленная версия: Linux Linux 056ef8e6700b8b6ca11453a9d4bfb1b868a5cd88, 183da103022ec11af55ba9951d2cc171fb6c836b, 48934c2927414a37a7fadeb6091113177c0b2038; azl3 kernel 6.6.152.1-1 on Azure Linux 3.0 6.6.157.1-1.
- Упоминается в национальных бюллетенях кибербезопасности Турции (siberguvenlik.gov.tr): 1.
Пока низкий приоритет. Обновитесь до Linux Linux 056ef8e6700b8b6ca11453a9d4bfb1b868a5cd88, 183da103022ec11af55ba9951d2cc171fb6c836b, 48934c2927414a37a7fadeb6091113177c0b2038; azl3 kernel 6.6.152.1-1 on Azure Linux 3.0 6.6.157.1-1 или новее.
Формируется автоматически по данным записи: CVSS (NVD и CNA), CISA KEV и SSVC, FIRST EPSS, источники эксплойтов, исправленные версии. Как мы считаем
Первоисточники: NVD · CVE.org · FIRST EPSS
In the Linux kernel, the following vulnerability has been resolved: HID: rmi: fix OOB access with undersized RMI reports The hid-rmi driver sizes its writeReport/readReport buffer purely from the report descriptor supplied by the device, with no minimum bound: data->input_report_size = hid_report_len(input_report); data->output_report_size = hid_report_len(output_report); alloc_size = data->output_report_size + data->input_report_size; data->writeReport = devm_kzalloc(&hdev->dev, alloc_size, GFP_KERNEL); data->readReport = data->writeReport + data->output_report_size; but then reads and writes fixed offsets into it. A device declaring a 1-byte output and a 1-byte input report makes hid_report_len() return 2 for each, so alloc_size is 4, while rmi_set_page() -- reached unconditionally at probe time through rmi_input_configured() -- stores writeReport[4] and rmi_hid_read_block() stores writeReport[0..5]. Since readReport lives at writeReport + output_report_size, those stores also corrupt the window the next reply is parsed out of. The read path is worse: the copy length comes from readReport[1], which the device fills in and can be up to 255, and the copy starts at &readReport[2] with no regard for input_report_size, so it runs past the end of the allocation into adjacent slab objects. This does not even need a lying device -- rmi_f01_probe() issues a fixed 21-byte register read, so any device declaring an input report smaller than 23 bytes reads out of bounds even when it answers truthfully. Those bytes become the register values the RMI core acts on: rmi_f01_probe() prints them to the kernel log as the product id and exports them through the mode 0444 sysfs attribute of the same name, and rmi_driver_set_irq_bits() sends them back to the device as the interrupt mask, so an undersized report descriptor leaks heap contents both to unprivileged userspace and to the device itself. The write path has no bound either: rmi_hid_write_block() copies an unbounded len to &writeReport[4], and the largest caller a device can drive at probe time is rmi_driver_set_irq_bits(), whose length is derived from the interrupt source counts the device declares in its Page Description Table. Finally, the read loop cannot terminate on a zero-length reply: such a reply copies nothing and advances neither bytes_read nor bytes_needed, and because a reply did arrive the one second wait_event_timeout() does not fire either, so a device answering 0 forever keeps the loop running inside the probe worker with page_mutex held. khungtaskd does not notice, because every reply wakes the task. Reject reports too small for what the driver builds -- 6 output bytes for the write reports and 3 input bytes for the read handshake -- at probe time, clamp the write and the read copy to the report sizes the device declared, and treat a zero-length reply as an error. A device refused this way is started as an ordinary HID device, like one that does not carry the RMI report ids at all. RMI_DEVICE must not be left set in device_flags on that path, because rmi_input_configured() would then run the RMI setup and reach rmi_set_page(), which writes the writeReport buffer the refusal just skipped allocating. The bit can arrive set: rmi_probe() copies id->driver_data into device_flags before the report checks, and a bind through the new_id sysfs attribute can supply driver_data with RMI_DEVICE (BIT(0)) set. Strip the bit where driver_data is copied, so RMI_DEVICE keeps meaning exactly "this probe validated the reports"; the three jumps to start that predate this patch are covered as well. The error path also clears RMI_READ_DATA_PENDING on its way out, because that flag is what the wait at the top of the loop tests: leaving it set would make every later wait_event_timeout() return immediately on the stale reply and kill the read path for the rest of the device's life. Clamping does not regress working hardware: the read loop already handles ---truncated---
- Опубликовано
- 16 сент. 2026 г.
- Обновлено
- 19 окт. 2026 г.
- EPSS
- 0,3 % · 27-й процентиль
- CWE
- —
Инструменты для отчёта
Оценка срочности
35
Наблюдать
Пока низкий приоритет.
- CVSS
- 35 / 40 · 8.8 / 10
- CISA KEV
- 0 / 30 · Нет в списке
- EPSS
- 0 / 30 · 0,3 %
Оценка CNA и NVD
- NVD
- —
- CNA · Linux
- 8,8
- NVD ещё не выставил свою оценку; показана оценка CNA.
Оценка присваивающего органа и независимая оценка NVD. Разрыв означает, что критичность спорна.
Узнайте, когда запись изменится
- Нет в KEV: эксплуатация в реальных атаках не зафиксирована
- Публичного эксплойта нет
- Исправление выпущено
Если что-то из этого изменится, сообщим в ежедневной сводке.
У вас WordPress? Проверьте сайт бесплатно в WP Lens
Анализ Noroxi
Что это значит для вашей инфраструктуры?
Оценка выше формируется автоматически по данным записи и не знает вашей среды. Наша команда проверит на ваших системах, действительно ли уязвимость эксплуатируема и какой меры достаточно.
Мы используем этот продукт, нужна помощьЗатронутые системы
Затронута ли ваша версия?
Выберите продукт и введите свою версию. Она сравнивается с диапазонами этой записи прямо в браузере и никуда не отправляется.
—
Версии, заявленные вендором
Диапазоны затронутых версий, заявленные назначающей организацией (Linux). Не зависят от анализа CPE в NVD и обычно опережают его.
Linux Linux
- 3.16затронута
- 9fb6bf02e3ad04c20edb8e46536ce3eeda32c736 и новее · до fba600d824597b2a894ecae72fc422c2b8c08f8cзатронута · git
- 9fb6bf02e3ad04c20edb8e46536ce3eeda32c736 и новее · до 056ef8e6700b8b6ca11453a9d4bfb1b868a5cd88затронута · git
- 9fb6bf02e3ad04c20edb8e46536ce3eeda32c736 и новее · до 183da103022ec11af55ba9951d2cc171fb6c836bзатронута · git
- 9fb6bf02e3ad04c20edb8e46536ce3eeda32c736 и новее · до a8be8bbf0952bb7ff46636ead1896769c381fe55затронута · git
- 9fb6bf02e3ad04c20edb8e46536ce3eeda32c736 и новее · до ab2958e0c94edd63315dd14dc548874cc63a4043затронута · git
- 9fb6bf02e3ad04c20edb8e46536ce3eeda32c736 и новее · до f4cb9c4556dcb593e66dbb855179dbd351dbb053затронута · git
- 9fb6bf02e3ad04c20edb8e46536ce3eeda32c736 и новее · до 48934c2927414a37a7fadeb6091113177c0b2038затронута · git
- 9fb6bf02e3ad04c20edb8e46536ce3eeda32c736 и новее · до 4956993bb3befdf791d71a4952d8d13bcfd44c7bзатронута · git
- до 3.16не затронута · semver
Затронутые пакеты
Данные OSV и GitHub Advisory: экосистема, пакет и диапазон. Сопоставление SBOM использует эту таблицу.
| Экосистема | Пакет | Затронутый диапазон | Исправление |
|---|---|---|---|
| Debian:12 | linux | до 6.1.190-1 | 6.1.190-1 |
| Debian:12 | linux-6.12 | до 6.12.111-1~deb12u1 | 6.12.111-1~deb12u1 |
| Debian:13 | linux | до 6.12.111-1 | 6.12.111-1 |
| Debian:14 | linux | до 7.2.6-1 | 7.2.6-1 |
Тот же продукт
linux: все записиДругие записи с наивысшей оценкой для того же основного продукта.
- CVE-2026-74705udp: fix potential use-after-free in tunnel segmentation40В плане
- CVE-2026-74612veth: fix skb length accounting after XDP frag adjustment40В плане
- CVE-2026-74475vxlan: use neigh_ha_snapshot() in route_shortcircuit()40В плане
Опубликованы до и после этой записи в том же продукте
- ← РаньшеCVE-2026-8999816 сент. 2026 г. · dm: fix race when loading and unloading a table31Наблюдать
- ← РаньшеCVE-2026-8999916 сент. 2026 г. · HID: wacom: validate report length in wacom_intuos_pro2_bt_irq32Наблюдать
- Позже →CVE-2026-9000116 сент. 2026 г. · HID: bpf: serialize device reference release in struct_ops destroy path31Наблюдать
Исправление
На какую версию обновиться
Версии с исправлением по данным вендора, реестров пакетов и Microsoft. Перед обновлением сверьтесь с бюллетенем вендора.
| Продукт / пакет | Исправленная версия | Источник |
|---|---|---|
| Linux Linux | 056ef8e6700b8b6ca11453a9d4bfb1b868a5cd88 | Вендор (CNA) |
| Linux Linux | 183da103022ec11af55ba9951d2cc171fb6c836b | Вендор (CNA) |
| Linux Linux | 48934c2927414a37a7fadeb6091113177c0b2038 | Вендор (CNA) |
| Linux Linux | 4956993bb3befdf791d71a4952d8d13bcfd44c7b | Вендор (CNA) |
| Linux Linux | a8be8bbf0952bb7ff46636ead1896769c381fe55 | Вендор (CNA) |
| Linux Linux | ab2958e0c94edd63315dd14dc548874cc63a4043 | Вендор (CNA) |
| Linux Linux | f4cb9c4556dcb593e66dbb855179dbd351dbb053 | Вендор (CNA) |
| Linux Linux | fba600d824597b2a894ecae72fc422c2b8c08f8c | Вендор (CNA) |
| azl3 kernel 6.6.150.1-1 on Azure Linux 3.0 | — | Microsoft (MSRC) |
| azl3 kernel 6.6.152.1-1 on Azure Linux 3.0 | 6.6.157.1-1 · Release Notes | Microsoft (MSRC) |
| debian:linux | 6.1.190-1 · Debian:12 | Реестр пакетов (OSV) |
| debian:linux | 6.12.111-1 · Debian:13 | Реестр пакетов (OSV) |
| debian:linux-6.12 | 6.12.111-1~deb12u1 · Debian:12 | Реестр пакетов (OSV) |
Статус эксплойта
Публичный эксплойт неизвестен
Публичный эксплойт пока не обнаружен. Это не значит, что вы в безопасности, лишь что порог чуть выше.
Контекст для исследователя
Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват bug bounty. Всё выводится из имеющихся данных; без кода эксплойтов.
Хронология
От публикации до сегодня: proof of concept, модуль Metasploit, CISA KEV и запись об исправлении. Даты — как сообщают источники.
Кроме публикации датированных событий нет.
Ежедневная оценка FIRST EPSS; записываются только изменения от 0,01 (ступенчатый график).
Ссылки на патчи и коммиты
Коммиты, PR и diff среди источников. Отправная точка для patch-diff и поиска вариантов; это исправления, не эксплойты.
Среди источников нет ссылок на коммит или PR.
Авторы
Все исследователиНашедшие, сообщившие и аналитики, названные в записи CNA. Нажмите имя, чтобы увидеть другие записи исследователя.
В записи CNA нет авторов.
Кандидаты в варианты
Тот же продукт, тот же класс уязвимости, в пределах 18 месяцев. Если патч не закрыл первопричину, родственная ошибка здесь.
Ночной расчёт связей ничего не нашёл.
Кандидаты в цепочки
Обход аутентификации и уязвимость, требующая привилегий, в одном продукте и близко по времени: вместе они могут дать путь без аутентификации.
—
Охват bug bounty
Известной публичной программы нет.
Источник: bounty-targets-data (публичные списки HackerOne, Bugcrowd, Intigriti, YesWeHack).
Национальное уведомление (Управление кибербезопасности Турции / USOM)
Официальные уведомления, ссылающиеся на эту запись; рекомендации — на странице ведомства.
- TR-26-1114 · 17 сент. 2026 г.(Linux Kernel Güvenlik Bildirimi)
Технические детали
Условия атаки
- Может быть вызвана кем-либо из того же сегмента сети.
- Учётная запись или пароль не требуются.
- Действия пользователя не требуются.
- Особые условия не требуются; воспроизводится стабильно.
В случае успеха
- Конфиденциальность
- высокое · данные могут быть прочитаны
- Целостность
- высокое · данные или конфигурация могут быть изменены
- Доступность
- высокое · работа сервиса может быть нарушена
- Вектор атаки
- Смежная сеть
- Сложность атаки
- Низкая
- Требуемые привилегии
- Не требуются
- Взаимодействие с пользователем
- Не требуется
- Область действия
- Не изменяется
- Влияние на конфиденциальность
- Высокое
- Влияние на целостность
- Высокое
- Влияние на доступность
- Высокое
Класс уязвимости (CWE)
—
Вектор CVSS
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
nvd-secondary
Контекст атаки
Шаблоны атак MITRE CAPEC и техники ATT&CK для этого класса уязвимости (CWE). Отправная точка для правил обнаружения и threat hunting.
У MITRE нет сопоставления CAPEC/ATT&CK для этого CWE.
Журнал изменений
- Исправление✗ → ✓
Для отслеживаемых записей эти изменения приходят и как уведомления. →
Источники
Показать все источники (ещё 7)Свернуть
- git.kernel.org/stable/c/183da103022ec11af55ba9951d2cc171fb6c836b
- git.kernel.org/stable/c/48934c2927414a37a7fadeb6091113177c0b2038
- git.kernel.org/stable/c/4956993bb3befdf791d71a4952d8d13bcfd44c7b
- git.kernel.org/stable/c/a8be8bbf0952bb7ff46636ead1896769c381fe55
- git.kernel.org/stable/c/ab2958e0c94edd63315dd14dc548874cc63a4043
- git.kernel.org/stable/c/f4cb9c4556dcb593e66dbb855179dbd351dbb053
- git.kernel.org/stable/c/fba600d824597b2a894ecae72fc422c2b8c08f8c
Рекомендации вендоров и официальные записи. Ссылки на эксплойты/PoC намеренно исключены.