Обновление 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.

Дополнение: Опубликован пример эксплуатации уязвимости.

Источники[править]


Creative Commons
Creative Commons
Эта статья содержит материалы из статьи «Обновление OpenWrt 19.07.1 с устранением уязвимости, допускающей подмену пакетов», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии[править]

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.