Nel progetto in fase di sviluppo OpenWrt, nello strumento ASU (Attended SysUpgrade), sono state individuate vulnerabilità critiche (CVE-2024-54143) che consentono di compromettere gli artefatti di assemblaggio distribuiti tramite il servizio sysupgrade.openwrt.org o server ASU di terze parti, e di installare immagini di firmware modificate da un aggressore sui sistemi degli utenti che utilizzano la modalità 'attended upgrade' per aggiornare il firmware attraverso l'interfaccia web selector.openwrt.org o lo strumento a riga di comando attended.sysupgrade.
Per eseguire con successo l'attacco, l'aggressore deve solo inviare una richiesta di generazione di un pacchetto al server ASU (simili richieste possono essere inviate da qualsiasi utente senza autenticazione). Attraverso manipolazioni con un elenco di pacchetti appositamente formattato, l'attaccante può organizzare l'invio di immagini dannose precedentemente generate in risposta a legittime richieste di assemblaggio provenienti da altri utenti.
Il servizio ASU viene utilizzato in OpenWrt per generare e installare aggiornamenti del firmware senza perdere le impostazioni esistenti e i pacchetti installati dall'utente. Attraverso l'interfaccia web o lo strumento a riga di comando, l'utente invia una richiesta per generare un'immagine di firmware aggiornata, specificando i pacchetti installati nel proprio sistema. Dopo un certo tempo, il server ASU genera l'immagine corrispondente al contenuto richiesto, dopodiché l'utente la scarica e la installa sul proprio dispositivo. Viene inoltre fornita un'opzione che consente di mantenere le impostazioni esistenti nel firmware aggiornato.
L'elaborazione delle richieste degli utenti è gestita dal server ASU, che avvia la generazione automatica delle immagini del firmware utilizzando lo strumento ImageBuilder e sostiene una cache di assemblaggi precedentemente preparati. Nel caso in cui l'utente richieda un'immagine che è già stata assemblata in precedenza server , e mantiene la sua validità, il sistema restituisce immediatamente l'immagine disponibile dalla cache senza avviare il processo di assemblaggio.
Il comportamento dell'attacco è stato reso possibile grazie a due vulnerabilità:
- Una vulnerabilità nel gestore delle richieste build_reques.py all'interno dell'implementazione di Imagebuilder consente l'inserimento di comandi personali nel processo di costruzione attraverso la trasmissione di nomi di pacchetti appositamente formati dall'utente. La vulnerabilità è causata dalla mancanza di un'adeguata verifica dei caratteri speciali nei nomi dei pacchetti prima del loro utilizzo tra gli argomenti dell'utility make. Sfruttando questa vulnerabilità, un attaccante può formare sul server immagini dannose del firmware, firmate con la corretta chiave di costruzione.
- Una vulnerabilità nella libreria util.py risulta dal fatto che gli hash SHA-256, utilizzati per verificare la presenza di immagini di firmware già pronte nella cache, venivano troncati a 12 caratteri, riducendo notevolmente il livello di entropia e consentendo, attraverso la ricerca di collisioni, la formazione di un'immagine dannosa il cui hash coincide con quello di un'immagine legittima. Combinata con la vulnerabilità di Imagebuilder, il problema degli hash potrebbe essere utilizzato da un attaccante per "contaminare" la cache del server ASU e collocarvi immagini dannose, fornite alle richieste degli utenti normali.
La modifica, a seguito della quale è stata possibile l'esecuzione dell'attacco, è stata apportata l'8 luglio. Il problema è stato risolto il 4 dicembre. Per garantire il funzionamento del servizio ASU sono stati utilizzati servers, sistemi separati, non sovrapposti ai principali sistemi di costruzione del progetto, isolati da OpenWrt Buildbot e privi di accesso a risorse riservate come chiavi SSH e certificati per la generazione di firme digitali.
Si sostiene che gli sviluppatori di OpenWrt non abbiano trovato tracce di compromissione dell'infrastruttura del progetto, ma per sicurezza hanno reinstallato da zero i sistemi sui quali venivano eseguiti i componenti vulnerabili. Il problema non ha riguardato le immagini ufficiali distribuite tramite il sito downloads.openwrt.org, e nell'analisi dei log di costruzione non sono state trovate tracce di invio di richieste dannose. Tuttavia, poiché sui server ASU viene effettuata una pulizia automatica delle costruzioni più vecchie di 7 giorni, è stato impossibile condurre un audit delle vecchie costruzioni.
La probabilità di utilizzo delle vulnerabilità identificate nella pratica per la diffusione di immagini dannose attraverso l'infrastruttura di OpenWrt è ritenuta dai rappresentanti di OpenWrt vicina allo zero; tuttavia, agli utenti dell'ASU si raccomanda di sostituire i firmware OpenWrt sui propri dispositivi con la stessa versione.
Fonte: opennet.ru
