Обновление OpenWrt 19.07.1 с устранением уязвимости, допускающей подмену пакетов

Опубликованы корректирующие выпуски дистрибутива OpenWrt 18.06.7 и 19.07.1, в которых устранена опасная уязвимость (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    

В новых версиях также устранена ещё одна уязвимость в библиотеке 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.

Источник: http://www.opennet.ru/opennews/art.shtml? num=52287

© OpenNet