CVE: CVE-2026-80745
Продукт: Linux Kernel
Дата публикации: 03.09.2026
Критичность: HIGH
CVSS: 8.4 (3.1)
EPSS: 0,12%; процентиль 2,24%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
В драйвере регулятора
fp9931 обнаружена ошибка, приводящая к выходу за границы таблицы напряжений. Проблема возникает при обращении к элементам массива VPOSNEG_table[] с индексами, превышающими фактический размер структуры.Уязвимость затрагивает системы с конкретным аппаратным компонентом и требует локального доступа. Статья описывает механику ошибки, условия эксплуатации и методы проверки исправления.
Основные характеристики
Риск связан с нарушением целостности памяти в ядре при работе с драйвером регулятора напряжения. Ошибка позволяет злоумышленнику с локальным доступом повлиять на состояние системы, что может привести к отказу в обслуживании или повышению привилегий.
- Тип ошибки: Out-of-bounds read/write (OOB) в статической таблице данных.
- CVSS 3.1: 8.4 (HIGH). Вектор:
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H.
- Условия атаки: Локальный доступ (AV:L), отсутствие необходимости в пользовательском взаимодействии (UI:N).
- Эксплуатация: Публичные данные о реальной эксплуатации в дикой природе отсутствуют.
- EPSS: 0,12% (0.00122), что указывает на низкую вероятность эксплуатации в ближайшем будущем.
Какие продукты и версии затронуты
Уязвимость затрагивает драйвер
fp9931 в Linux Kernel. Проблема была введена в коммите 12d821bd13d4 при добавлении поддержки данного регулятора.- Компонент:
drivers/regulator/fp9931.c.
- Затронутые версии: Все версии ядра, содержащие исходный драйвер
fp9931до применения исправления.
- Исправление: Включено в стабильные ветки ядра. Основной коммит исправления:
66694b5f90f3876fccb87bbd02b453cdc33b3ae4.
Для точного определения затронутых версий необходимо сверить версию ядра с официальными списками обновлений дистрибутива или upstream-ветками.
Причина уязвимости
Причина уязвимости заключается в несоответствии между документацией (datasheet) чипа FP9931 и реализацией таблицы напряжений в драйвере.
Таблица
VPOSNEG_table[] должна содержать 64 элемента (от 0x00 до 0x3F), но в исходном коде было только 41. Кроме того, в начале таблицы присутствовал лишний элемент, что сдвинуло все последующие значения. В результате, при попытке доступа к индексу выше 0x28 (где напряжение должно быть зафиксировано на 15.06V), драйвер обращался за пределы выделенной памяти массива.Двойная ошибка (сдвиг и нехватка элементов) привела к тому, что часть валидных по спецификации значений не была обработана, а часть адресов указывала на несуществующие ячейки.
Как работает атака
Атака эксплуатирует логическую ошибку в маппинге значений регулятора. Драйвер использует таблицу
VPOSNEG_table[] для преобразования кода селектора в фактическое значение напряжения.Если атакующий может повлиять на выбор значения регулятора (например, через интерфейс
hwmon или regulator), он может передать драйверу селектор, соответствующий индексу, превышающему размер массива. Это приводит к чтению или записи за границы таблицы.Поскольку таблица является статической (
const), чтение за границы может привести к утечке данных из соседних структур в памяти ядра. Запись (если она возможна через другие механизмы драйвера) может привести к повреждению памяти и выполнению кода в контексте ядра.Условия успешной эксплуатации
Для успешной эксплуатации уязвимости необходимо выполнение следующих условий:
- Наличие в системе аппаратного компонента, поддерживаемого драйвером
fp9931.
- Локальный доступ к системе (пользователь или процесс с правами на взаимодействие с интерфейсами регулятора).
- Возможность управления значениями регулятора или чтения данных через соответствующие sysfs-интерфейсы.
- Отсутствие исправления в текущей версии ядра.
Возможный сценарий атаки
Сценарий атаки предполагает, что злоумышленник имеет локальный доступ к системе, где установлен чип FP9931.
- Атакующий определяет, что драйвер
fp9931загружен и активен.
- Через интерфейс
hwmonилиregulatorон пытается установить или прочитать значение напряжения, соответствующее селектору, например,0x29или выше.
- Драйвер обращается к
VPOSNEG_table[0x29], что выходит за границы массива (размер 41, индекс 41 и выше).
- Происходит чтение из памяти, следующей за таблицей. Если атакующий может контролировать содержимое этой памяти или использовать утечку для обхода KASLR, он может получить доступ к чувствительным данным ядра.
- В худшем случае, если есть возможность записи, это приводит к повреждению памяти и потенциальному повышению привилегий до root.
Есть ли публичный эксплойт
На момент публикации CVE-2026-80745 публичные эксплойты или PoC-коды не обнаружены. Официальные источники (NVD, git.kernel.org) содержат только описание ошибки и коммиты с исправлением.
Отсутствие публичного эксплойта не означает, что атака невозможна. Учитывая локальный вектор атаки и сложность эксплуатации OOB-ошибок в ядре, вероятность успешной атаки в реальных условиях пока низка, но не исключена.
Признаки эксплуатации
Специфичные индикаторы компрометации (IOC) для этой уязвимости не опубликованы. Однако можно использовать общие признаки аномальной работы драйвера регулятора:
- Необычные значения напряжений в интерфейсах
hwmon.
- Ошибки в журналах ядра (
dmesg), связанные с драйверомfp9931.
- Аномальные системные вызовы, связанные с изменением настроек регулятора.
Эти признаки неспецифичны и могут быть вызваны другими проблемами.
Как обнаружить атаку
Для обнаружения потенциальной эксплуатации или аномальной работы драйвера рекомендуется:
- Мониторинг логов ядра на ошибки, связанные с
fp9931.
- Контроль доступа к интерфейсам
hwmonиregulatorчерезauditdилиeBPF.
- Проверка целостности драйвера и его конфигурации.
Так как уязвимость требует локального доступа, детекция должна фокусироваться на аномальной активности локальных пользователей и процессов.
Как проверить свою версию
Для проверки версии ядра и наличия исправления используйте следующие команды:
Bash:
uname -r
uname -a
cat /proc/version
Затем сверьте версию с официальными списками обновлений вашего дистрибутива или upstream-ветками. Убедитесь, что коммит
66694b5f90f3876fccb87bbd02b453cdc33b3ae4 включен в вашу сборку.Исправление
Единственным надежным способом устранения уязвимости является обновление ядра до версии, содержащей исправление.
- Обновите ядро до последней стабильной версии, включающей коммит
66694b5f90f3876fccb87bbd02b453cdc33b3ae4.
- Если обновление ядра невозможно, рассмотрите отключение драйвера
fp9931(если это допустимо для вашей конфигурации).
- Следите за обновлениями безопасности от вашего дистрибутива Linux.
Не рекомендуется применять частичные исправления или патчи вручную без полного обновления.
Временные меры защиты
Пока обновление ядра не выполнено, можно принять следующие временные меры:
- Ограничьте доступ к интерфейсам
hwmonиregulatorдля непривилегированных пользователей.
- Используйте
seccompилиAppArmorдля ограничения системных вызовов, связанных с изменением настроек регулятора.
- Если возможно, отключите драйвер
fp9931через параметры загрузки ядра (например,modprobe.blacklist=fp9931), если он не критичен для работы системы.
Эти меры снижают, но не устраняют риск полностью.
Как проверить устранение уязвимости
Для проверки успешного применения исправления:
- Убедитесь, что версия ядра соответствует требованиям (см. раздел «Проверка версии»).
- Проверьте, что коммит
66694b5f90f3876fccb87bbd02b453cdc33b3ae4присутствует в истории ядра (если доступно черезgitили инструменты дистрибутива).
- Проведите функциональное тестирование драйвера
fp9931, если он используется в вашей системе.
- Проверьте логи ядра на отсутствие ошибок, связанных с OOB-доступом.
Вывод
CVE-2026-80745 представляет собой серьезную уязвимость в драйвере
fp9931, способную привести к компрометации системы при локальном доступе. Несмотря на отсутствие публичных эксплойтов, риск остается высоким из-за потенциала для повышения привилегий.Администраторам систем с данным аппаратным компонентом следует приоритетно обновить ядро до исправленной версии. Временные меры, такие как ограничение доступа к интерфейсам регулятора, могут снизить риск, но не заменяют обновление.
Официальные источники
- NVD — CVE-2026-80745
- FIRST EPSS — CVE-2026-80745
- regulator: fp9931: Fix VPOS/VNEG voltage selector table - kernel/git/stable/linux.git - Linux kernel stable tree
- regulator: fp9931: Fix VPOS/VNEG voltage selector table - kernel/git/stable/linux.git - Linux kernel stable tree
- CVEs — The Linux Kernel documentation
История обновлений статьи
- 05.09.2026 — Опубликована первая версия материала.
