boneIO Black и системные образы допускают обход аутентификации и повышение привилегий

boneIO

boneIO Black и системные образы black_debian_images содержат несколько уязвимостей. Они затрагивают веб-интерфейс, программный интерфейс управления, службу обмена сообщениями и механизм повышения прав. Вместе они позволяют обходить аутентификацию, выполнять команды на устройстве и получать полный контроль над контроллером домашней автоматизации. Исправление вышло в версии 1.6.0.

Аутентификация, межсайтовые запросы и права в boneIO

Записи вышли с исправлением в версии 1.6.0. Сведений об эксплуатации в реальных атаках в них нет: раскрытие технических деталей не означает, что уязвимости уже используют. Затронуты версии до 1.6.0; для части проблем нижняя граница - 1.2.0 или 1.3.0, для отключённой аутентификации - 1.0.0.

Доступ без аутентификации

В boneIO Black среда Node-RED доступна без входа через обратный прокси Caddy. Node-RED - среда визуального программирования потоков автоматизации. Её административный интерфейс позволяет развернуть поток, который выполняет системные команды. Атака идёт из локальной сети, учётные данные и участие пользователя не нужны; оценка - 8.7 из 10, уровень High. В результате атакующий получает полный контроль над системой домашней автоматизации.

Отдельная проблема известна как CVE-2026-77053. Управляющий веб-API (программный интерфейс) boneIO Black слушает все сетевые интерфейсы, а аутентификация в нём отключена по умолчанию. Атакующий без учётной записи из локальной сети управляет устройством и меняет конфигурацию. Он также вызывает отказ в обслуживании и переключает подключённые цепи.

В версии 1.6.0 устройство без администратора отклоняет запросы к API. Оно не начинает работу, пока владелец не создаст учётную запись в мастере первого запуска. Все маршруты API требуют входа и назначенной роли. Устройства на версиях до 1.2.0 основаны на Debian 10, не поддерживаются и не обновляются на месте; их нужно перепрошивать образом 1.6.0.

Ещё одна запись касается API, которые исключены из проверки входа. Из локальной сети без учётных данных можно получить журналы системы, версию прошивки, серийный номер, имя пользователя MQTT, список файлов конфигурации и документацию API. Эти сведения помогают разведке и подготовке целевых атак. После 1.6.0 каждый маршрут API требует входа, интерактивная документация отключена, а серийный номер не выдают анонимным запросам.

Пароли и брокер сообщений

Пароли веб-панели и брокера сообщений MQTT (протокол обмена данными для устройств автоматизации) в boneIO Black хранятся в открытом виде. API конфигурации возвращает полную конфигурацию вместе с паролями подсистем. Любой пользователь с входом может прочитать административные пароли. Из-за отключённой аутентификации их получает и атакующий из локальной сети без учётной записи. В 1.6.0 пароли веб-панели хранятся как хеши с солью (случайной добавкой) в файле, доступном только служебной учётной записи, а API и журналы больше не возвращают секреты.

Пароль MQTT-брокера остаётся восстановимым, потому что приложение передаёт его брокеру как клиент. Его держат в отдельном файле, доступном только служебной учётной записи. Через API этот пароль не показывают.

MQTT-брокер Mosquitto в образах black_debian_images использует одинаковые учётные данные по умолчанию на всех устройствах. Они лежат в открытой документации на GitHub, а инструкция не требует их смены. Атакующий по сети получает полный доступ на чтение и запись к брокеру. Он управляет реле, приводами штор и воротами, а также добавляет поддельные устройства в Home Assistant.

В версии 1.6.0 пароли MQTT создаются для каждого устройства при первом запуске. После обновления с прежних версий пароль брокера сохраняется; панель управления сообщает, что он всё ещё совпадает с опубликованным по умолчанию, и владельцу нужно его сменить.

Файл паролей MQTT-брокера в образах black_debian_images доступен на чтение всем локальным пользователям. По хешам можно перебирать пароли по словарю без обращения к устройству. Исправление в 1.6.0 закрывает доступ к файлу.

Локальное повышение прав

Служебная учётная запись boneio в образах black_debian_images получает избыточные права. У неё есть безпарольный sudo (запуск команд с повышенными правами) и членство в группе docker (доступ к управлению контейнерами). Локальный атакующий, который получил доступ к этой учётной записи, повышает права до root (суперпользователь). Эта проблема известна как CVE-2026-77055. По шкале CVSS (общая система оценки уязвимостей) оценка составляет 9.3 из 10, уровень Critical.

В 1.6.0 образ удаляет правило sudo и членство в группе docker при сборке. На устройствах в поле эти права снимают миграции из boneio 1.6.0 при первом запуске после обновления. Система выполняет привилегированные операции через помощники с фиксированным набором команд.

В компоненте управления часовым поясом есть состояние гонки между проверкой и использованием (TOCTOU). Компонент пишет правила sudo во временный файл с предсказуемым именем, проверяет их, а затем устанавливает с правами root. Локальный атакующий использует окно между проверкой и установкой для подмены содержимого или применяет символическую ссылку. В результате он внедряет произвольные правила sudo и повышает права до root. Исправление вышло в 1.6.0.

Подделка запросов и кликджекинг

Все API boneIO Black, которые меняют состояние, не проверяют токены защиты от межсайтовой подделки запроса (CSRF) и не проверяют источник запроса. Атакующий размещает вредоносную страницу; при её посещении браузер пользователя из внутренней сети отправляет запросы к устройству. Так можно перезагрузить контроллер, переключить реле, управлять воротами и шторами или выключить устройство. Из-за CVE-2026-77053 действие срабатывает у любого пользователя внутренней сети. В 1.6.0 эту проблему закрыли.

Веб-интерфейс также не ограничивает встраивание в чужую страницу. Атакующий помещает панель управления во фрейм (iframe) на вредоносной странице и располагает элементы так, чтобы пользователь нажал нужные кнопки. Нажатия включают реле, открывают ворота или управляют шторами, что меняет состояние подключённых цепей. Из-за отключённой аутентификации достаточно, чтобы пользователь внутренней сети открыл такую страницу. Исправление вошло в 1.6.0.

Вход в веб-интерфейс и SSH (протокол удалённого входа) не ограничивает число попыток, а требования к сложности пароля отсутствуют. Атакующий по сети может проводить атаку полным перебором (брутфорс) и подобрать учётные данные. В 1.6.0 система ограничивает частоту входов в веб-интерфейс по адресу источника и по учётной записи. Для паролей панели действует минимальная длина, а SSH ограничивает попытки на соединение и сокращает время ожидания входа.

Главный риск создаёт сочетание отключённой аутентификации с выполнением команд и повышением прав до root. Исправление вышло в версии 1.6.0. Устройства на версиях до 1.2.0 требуют перепрошивки. После обновления нужно проверить пароль MQTT и сменить его, если он остался опубликованным по умолчанию. Обходных мер, кроме обновления и перепрошивки, в записях не указано.

Ссылки

Комментарии: 0