CVE-2026-42806: выход за границы массива в Bosch BME690 SensorAPI
В C-драйвере Bosch Sensortec BME690 SensorAPI (v1.0.3 и ниже) обнаружена уязвимость чтения за границами буфера. При парсинге данных датчика злоумышленник или скомпрометированное периферийное устройство на шине I2C/SPI может подставить некорректный индекс газа и вызвать утечку содержимого стека. Уязвимость оценена в 4.3 (MEDIUM).
Подробности
Драйвер предварительно считывает регистры конфигурации нагревателя в непрерывный стековый буфер set_val размером 30 байт, в который отображаются таблицы IDAC, RES_HEAT и GAS_WAIT. При разборе полевых данных датчика индекс газа gas_index извлекается с помощью 4-битной маски, что даёт диапазон значений от 0 до 15. При этом проверка границ относительно корректного диапазона (0..9) отсутствует. В результате атакующий либо скомпрометированное периферийное устройство, имитирующее датчик на шине I2C/SPI, может вернуть полезную нагрузку со значением индекса газа 10 или выше. Это заставляет драйвер выполнить доступ к массиву за пределами допустимого диапазона — set_val[20 + gas_index], — что приводит к чтению до 6 байт за пределами стекового буфера. Считанный за границами байт затем записывается в публичное поле gas_wait. Это может привести к искажению результатов измерений, а также к утечке содержимого соседней стековой памяти, если данные телеметрируются или записываются в журналы. Уязвимости присвоена оценка CVSS 4.3 (MEDIUM).Что делать
Производителям и разработчикам, использующим Bosch Sensortec BME690 SensorAPI, рекомендуется в первую очередь проверить используемую версию драйвера. Наиболее надёжная мера — обновление до версии, в которой устранена проблема, как только она станет доступна у вендора. Если обновление невозможно, следует рассмотреть следующие митигации: — добавить в код разбора данных явную проверку границ gas_index перед доступом к массиву set_val; — ограничить доверие к данным, поступающим от датчика по шинам I2C/SPI, и валидировать все поля полезной нагрузки; — исключить вывод необработанных полей драйвера в телеметрию и журналы, чтобы снизить риск утечки памяти; — обеспечить физическую и логическую защиту шины I2C/SPI, чтобы исключить подключение поддельных периферийных устройств.Итог
CVE-2026-42806 — это уязвимость средней критичности, эксплуатация которой требует доступа к шине I2C/SPI или возможности имитировать датчик. Несмотря на ограниченный характер воздействия, она способна приводить к искажению измерений и утечке данных из стека. Основная рекомендация — своевременное обновление драйвера и валидация входных данных на стороне приложения.Источник: CVE Project (cvelistV5)
