Опубликованы исправительные выходы дистрибутива OpenWrt и , в които е отстранена (CVE-2020-7982) в пакетном менеджере , позволяющая осуществить 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
В новых версиях исправлена еще одна в библиотеке , которая может привести к переполнению буфера при обработке в функции специално оформени сериализирани бинарни данни или данни в JSON формат. Библиотеката се използва в компоненти на дистрибуцията като netifd, procd, ubus, rpcd и uhttpd, както и в пакета (Посетен 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.
Източник: opennet.ru
