Sono stati pubblicati aggiornamenti correttivi per la distribuzione OpenWrt e , in cui è stata rimossa (CVE-2020-7982) nel gestore pacchetti , che consente di eseguire un attacco MITM e modificare il contenuto del pacchetto scaricato dal repository. A causa di un errore nel codice di verifica dei checksum, un attaccante potrebbe creare condizioni in cui i checksum SHA-256, presenti nell'indice dei pacchetti firmato digitalmente, vengono ignorati, permettendo di eludere i meccanismi di verifica dell'integrità delle risorse ipk scaricate.
Il problema si è manifestato a partire da febbraio 2017, dopo di codice per ignorare gli spazi iniziali che precedono il checksum. A causa di un errore nel salto degli spazi, il puntatore sulla stringa non veniva spostato e il ciclo di decodifica della sequenza esadecimale SHA-256 restituiva immediatamente il controllo, fornendo un checksum di lunghezza zero.
Poiché il gestore di pacchetti opkg in OpenWrt viene eseguito con privilegi di root, nel caso in cui venga organizzato un attacco MITM, un malintenzionato ha la possibilità di apportare modifiche invisibili al pacchetto ipk scaricato dal repository durante l'esecuzione del comando «opkg install» e avviare l'esecuzione del proprio codice con privilegi di root attraverso l'aggiunta di propri script di gestione nel pacchetto, invocati durante l'installazione. Per sfruttare la vulnerabilità, l'attaccante deve anche organizzare la sostituzione dell'indice dei pacchetti corretto e firmato (ad esempio, fornito da downloads.openwrt.org). La dimensione del pacchetto modificato deve corrispondere alla dimensione originale definita nell'indice.
In situazioni in cui è necessario evitare l'aggiornamento dell'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
Successivamente, è necessario confrontare i checksum mostrati e, se coincidono, eseguire:
opkg install ./opkg_2020-01-25-c09fe209-1_*.ipk
Nelle nuove versioni è stata anche rimossa un'altra nella libreria , che può portare a un overflow del buffer durante l'elaborazione nella funzione di dati binari serializzati formattati o dati in formato JSON. La libreria viene utilizzata in componenti della distribuzione come netifd, procd, ubus, rpcd e uhttpd, nonché nel pacchetto (Attended sysUpgrade CLI). L'overflow del buffer si verifica durante la trasmissione in blocchi blob di grandi attributi numerici di tipo «double». È possibile verificare se il sistema è vulnerabile eseguendo il comando:
$ ubus call luci getFeatures \
‘{ «banik»: 00192200197600198000198100200400.1922 }’
Oltre a risolvere le vulnerabilità e correggere gli errori accumulati, nella versione OpenWrt 19.07.1 è stata anche aggiornata la versione del kernel Linux (da 4.14.162 a 4.14.167), risolvendo problemi di prestazioni con l'uso delle frequenze a 5GHz, e 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
