Обновление OpenWrt 19.07.1 с устранением уязвимости, допускающей подмену пакетов
1 февраля 2020 года
Опубликованы корректирующие выпуски дистрибутива OpenWrt 18.06.7 (Архивная копия от 1 февраля 2020 на Wayback Machine) и 19.07.1 (Архивная копия от 1 февраля 2020 на Wayback Machine), в которых устранена опасная уязвимость (Архивная копия от 3 марта 2020 на Wayback Machine) (CVE-2020-7982) в пакетном менеджере opkg, позволяющая осуществить MITM-атаку и подменить содержимое загружаемого из репозитория пакета. Из-за ошибки в коде проверки контрольных сумм, атакующий может создать условия, при которых контрольные суммы SHA-256, присутствующие в заверенном цифровой подписью индексе пакетов, будут игнорированы, что даёт возможность обойти механизмы проверки целостности загружаемых ipk-ресурсов.
Проблема проявляется с февраля 2017 года, после добавления(недоступная ссылка) кода для игнорирования начальных пробелов, идущих перед контрольной суммой. Из-за ошибки при пропуске пробелов не сдвигался указатель на позицию в строке и цикл декодирования шестнадцатеричной последовательности SHA-256 сразу возвращал управление и отдавал контрольную сумму нулевой длины.
Так как пакетный менеджер opkg в OpenWrt запускается с правами root, то в случае организации MITM атаки злоумышленник имеет возможность незаметно внести изменения в ipk-пакет, загружаемый из репозитория в процессе выполнения пользователем команды "opkg install", и организовать выполнение своего кода с правами root через добавления в пакет собственных скриптов-обработчиков, вызываемых при установке. Для эксплуатации уязвимости атакующий также должен организовать подмену корректного и подписанного индекса пакетов (например, отдаваемого с downloads.openwrt.org). Размер изменённого пакета должен соответствовать исходному размеру, определённому в индексе.
В ситуации, когда необходимо обойтись без обновления всей прошивки, можно обновить только пакетный менеджер opkg, выполнив следующие команды:
cd /tmp opkg update opkg download opkg zcat ./opkg-lists/openwrt_base | grep -A10 "Package: opkg" | grep SHA256sum sha256sum ./opkg_2020-01-25-c09fe209-1_*.ipk Далее следует сравнить показанные контрольные суммы и если они совпадают выполнить: opkg install ./opkg_2020-01-25-c09fe209-1_*.ipk
В новых версиях также устранена ещё одна уязвимость (Архивная копия от 1 февраля 2020 на Wayback Machine) в библиотеке libubox, которая может привести к переполнению буфера при обработке в функции blobmsg_format_json специально оформленных сериализированных бинарных данных или данных в формате JSON. Библиотека используется в таких компонентах дистрибутива, как netifd, procd, ubus, rpcd и uhttpd, а также в пакете auc (Attended sysUpgrade CLI). Переполнение буфера возникает при передаче в blob-блоках больших числовых атрибутов с типом "double". Проверить подверженность системы уязвимости можно выполнив команду:
$ ubus call luci getFeatures \ '{ "banik": 00192200197600198000198100200400.1922 }'
Кроме устранения уязвимостей и исправления накопившихся ошибок в выпуске OpenWrt 19.07.1 также обновлена версия ядра Linux (с 4.14.162 до 4.14.167), решены проблемы с производительностью при использовании частот 5GHz, налажена поддержка устройств Ubiquiti Rocket M Titanium, Netgear WN2500RP v1, Zyxel NSA325, Netgear WNR3500 V2, Archer C6 v2, Ubiquiti EdgeRouter-X, Archer C20 v4, Archer C50 v4 Archer MR200, TL-WA801ND v5, HiWiFi HC5962, Xiaomi Mi Router 3 Pro и Netgear R6350.
Дополнение: Опубликован пример эксплуатации уязвимости.
Источники[править]
- Главная ссылка к новости (https://lists.infradead.org/pi...) (Архивная копия от 3 марта 2020 на Wayback Machine)
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии[править]
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.