Opublikowano poprawki dla dystrybucji OpenWrt i , w których usunięto (CVE-2020-7982) w menedżerze pakietów , która umożliwia przeprowadzenie ataku MITM i modyfikację zawartości pakietu pobieranego z repozytorium. Z powodu błędu w kodzie sprawdzania sum kontrolnych, atakujący może stworzyć warunki, w których sumy kontrolne SHA-256, znajdujące się w podpisanym cyfrowo indeksie pakietów, będą ignorowane, co pozwala na ominięcie mechanizmów sprawdzania integralności pobieranych zasobów ipk.
Problem ujawnił się od lutego 2017 roku, po kodzie ignorującym wstępne spacje przed sumą kontrolną. Z powodu błędu przy pominięciu spacji, wskaźnik pozycji w linii nie był przesuwany i pętla dekodująca szesnastkową sekwencję SHA-256 od razu zwracała kontrolę, przekazując sumę kontrolną o zerowej długości.
Ponieważ menedżer pakietów opkg w OpenWrt działa z uprawnieniami roota, w przypadku zorganizowania ataku MITM, napastnik ma możliwość niezauważalnego wprowadzenia zmian w pakiecie ipk pobieranym z repozytorium w trakcie wykonywania przez użytkownika polecenia "opkg install", i zorganizowania wykonania swojego kodu z uprawnieniami roota przez dodanie do pakietu własnych skryptów-obsługujących, wywoływanych podczas instalacji. Aby wykorzystać lukę, atakujący także musi zorganizować modyfikację prawidłowego i podpisanego indeksu pakietów (na przykład tego z downloads.openwrt.org). Rozmiar zmienionego pakietu musi odpowiadać oryginalnemu rozmiarowi określonemu w indeksie.
W sytuacji, gdy trzeba obejść się bez aktualizacji całego oprogramowania układowego, można zaktualizować jedynie menedżera pakietów opkg, wykonując następujące polecenia:
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
Następnie należy porównać pokazane sumy kontrolne i jeśli się zgadzają, wykonać:
opkg install ./opkg_2020-01-25-c09fe209-1_*.ipk
W nowych wersjach naprawiono także kolejny w bibliotece , co może prowadzić do przepełnienia bufora podczas przetwarzania w funkcji specjalnie sformatowanych zserializowanych danych binarnych lub danych w formacie JSON. Biblioteka jest używana w takich komponentach dystrybucji, jak netifd, procd, ubus, rpcd i uhttpd, a także w pakiecie (Attended sysUpgrade CLI). Przepełnienie bufora występuje podczas przesyłania w blokach blob dużych atrybutów liczbowych typu "double". Sprawdzić podatność systemu na tę lukę można, wykonując polecenie:
$ ubus call luci getFeatures \
'{ "banik": 00192200197600198000198100200400.1922 }'
Oprócz eliminacji luk i naprawy nagromadzonych błędów w wersji OpenWrt 19.07.1 zaktualizowano także wersję jądra Linux (z 4.14.162 do 4.14.167), rozwiązano problemy z wydajnością przy użyciu częstotliwości 5GHz, nawiązano wsparcie dla urządzeń 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 i Netgear R6350.
Źródło: opennet.ru
