Pubblicate le versioni correttive della distribuzione OpenWrt e , in cui è stato risolto (CVE-2020-7982) nel gestore pacchetti , che consente di eseguire un attacco MITM e di sostituire il contenuto del pacchetto scaricato dal repository. A causa di un errore nel codice di verifica dei checksum, un attaccante può creare condizioni in cui i checksum SHA-256, presenti nell'indice dei pacchetti firmato digitalmente, verranno ignorati, fornendo la possibilità di eludere i meccanismi di verifica dell'integrità delle risorse ipk scaricate.
Il problema si manifesta da febbraio 2017, dopo di codice per ignorare gli spazi iniziali che precedono il checksum. A causa di un errore nel salto degli spazi, non si spostava il puntatore sulla posizione nella stringa e il ciclo di decodifica della sequenza esadecimale SHA-256 restituiva immediatamente il controllo, fornendo un checksum di lunghezza zero.
Poiché il gestore pacchetti opkg in OpenWrt viene eseguito con i diritti di root, in caso di un attacco MITM l'aggressore ha la possibilità di modificare in modo invisibile il pacchetto ipk scaricato dal repository durante l'esecuzione del comando «opkg install» dall'utente e di far eseguire il proprio codice con i diritti di root aggiungendo propri script di gestione al pacchetto, invocati durante l'installazione. Per sfruttare la vulnerabilità, l'attaccante deve anche sostituire l'indice dei pacchetti corretto e firmato (ad esempio, quello proveniente da downloads.openwrt.org). La dimensione del pacchetto modificato deve corrispondere a quella originaria, definita nell'indice.
In una situazione in cui è necessario evitare di aggiornare l'intero firmware, è possibile aggiornare solo il gestore pacchetti opkg eseguendo i seguenti comandi:
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
Dopo, è necessario confrontare gli hash mostrati e, se coincidono, eseguire:
opkg install ./opkg_2020-01-25-c09fe209-1_*.ipk
Nelle nuove versioni è stata corretta anche un'altra nella libreria , che può portare a un overflow del buffer durante l'elaborazione nella funzione di dati binari serializzati appositamente formattati o dati in formato JSON. La libreria viene utilizzata in componenti della distribuzione come netifd, procd, ubus, rpcd e uhttpd, così come nel pacchetto (Attended sysUpgrade CLI). L'overflow del buffer si verifica quando si inviano blocchi blob con grandi attributi numerici di tipo 'double'. È possibile verificare la vulnerabilità del sistema eseguendo il comando:
$ ubus call luci getFeatures \
‘{ «banik»: 00192200197600198000198100200400.1922 }’
Oltre a risolvere le vulnerabilità e correggere gli errori accumulati, nella versione di OpenWrt 19.07.1 è stato aggiornato anche il kernel Linux (da 4.14.162 a 4.14.167), risolti problemi di prestazioni nell'uso delle frequenze a 5GHz, ed è stato migliorato il supporto per i dispositivi 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 e Netgear R6350.
Fonte: opennet.ru
