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

Опубліковано коригувальні випуски дистрибутива OpenWrt 18.06.7 и 19.07.1, у яких усунено небезпечна вразливість (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
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, а також у пакеті аук (Attended sysUpgrade CLI). Переповнення буфера виникає під час передачі у blob-блоках великих числових атрибутів із типом «double». Перевірити схильність системи вразливості можна, виконавши команду:

$ubus call luci getFeatures \
'{«banik»: 00192200197600198000198100200400.1922 }'

Крім усунення вразливостей та виправлення накопичених помилок у випуску OpenWrt 19.07.1 також оновлено версію ядра Linux (з 4.14.162 до 4.14.167), вирішені проблеми з продуктивністю при використанні частот 5GHz, налагоджена підтримка пристроїв Tib2500
Zyxel NSA325, Netgear WNR3500 V2, Archer C6 v2, Ubiquiti Edge Router-X, Archer C20 v4, Archer C50 v4 Archer MR200, TL-WA801ND v5, HiWiFi HC5962, Xiaomi Mi Router 3 Pro.

Джерело: opennet.ru

Додати коментар або відгук