Zverejnené opravy distribúcie OpenWrt a , v ktorých bola odstránená (CVE-2020-7982) v správci balíčkov , umožňujúca uskutočniť MITM útok a zmeniť obsah sťahovaného balíčka z repozitára. V dôsledku chyby v kontrolných sumách môže útočník vytvoriť podmienky, za ktorých budú ignorované SHA-256 kontrolné sumy prítomné v digitálne podpísanom indexe balíčkov, čo umožňuje obísť mechanizmy kontroly integrity sťahovaných ipk zdrojov.
Problém sa prejavuje od februára 2017, po kódu, ktorý ignoruje počiatočné medzery pred kontrolnou sumou. V dôsledku chyby pri preskočení medzier sa nepresunula ukazovateľ na pozíciu v reťazci a cyklus dekódovania šestnástkového reťazca SHA-256 okamžite vrátil riadenie a vrátil nulovú dĺžku kontrolnej sumy.
Keďže správca balíčkov opkg v OpenWrt sa spúšťa s právami root, pri uskutočnení MITM útoku má útočník možnosť nenápadne zmeniť ipk balík sťahovaný z repozitára počas spustenia príkazu „opkg install“ používateľom a spustiť svoj kód s právami root pridaním vlastných spracovateľských skriptov do balíka, ktoré sa volajú pri inštalácii. Na využitie zraniteľnosti musí útočník tiež zorganizovať výmenu správneho a podpísaného indexu balíčkov (napríklad dodávaného z downloads.openwrt.org). Veľkosť upraveného balíka musí zodpovedať pôvodnej veľkosti určenej v indexe.
V situácii, keď je potrebné obísť aktualizáciu celej firmvéry, môžete aktualizovať iba správcu balíčkov opkg spustením nasledujúcich príkazov:
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
Následne je potrebné porovnať zobrazené kontrolné sumy a ak sa zhodujú, vykonať:
opkg install ./opkg_2020-01-25-c09fe209-1_*.ipk
V nových verziách bola odstránená ďalšia v knižnici , ktorá môže viesť k pretečeniu vyrovnávacej pamäte pri spracovaní vo funkcii špeciálne formátovaných serializovaných binárnych údajov alebo údajov vo formáte JSON. Knižnica sa používa v komponentoch distribúcie ako netifd, procd, ubus, rpcd a uhttpd, ako aj v balíku (Zúčastnené sysUpgrade CLI). Preplnenie vyrovnávacej pamäte nastáva pri prenose veľkých číselných atribútov typu „double“ v blob blokoch. Skontrolovať zraniteľnosť systému môžete vykonaním príkazu:
$ ubus call luci getFeatures \
'{ "banik": 00192200197600198000198100200400.1922 }'
Okrem odstránenia zraniteľností a opravy nahromadených chýb vo verzii OpenWrt 19.07.1 bola taktiež aktualizovaná verzia jadra Linux (z 4.14.162 na 4.14.167), vyriešené problémy s výkonom pri používaní frekvencií 5GHz, bola zavedená podpora zariadení 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 a Netgear R6350.
Zdroj: opennet.ru
