I ricercatori delle aziende Claroty e JFrog hanno pubblicato i risultati di un audit di sicurezza del pacchetto BusyBox, ampiamente utilizzato nei dispositivi embedded e che offre un insieme di utility UNIX standard, confezionate in un unico file eseguibile. Durante il controllo sono state individuate 14 vulnerabilità, già risolte nella versione di agosto del BusyBox 1.34. Quasi tutti i problemi sono considerati non pericolosi e discutibili in termini di applicazione in attacchi reali, poiché richiedono l'esecuzione delle utility con argomenti forniti esternamente.
Si segnala particolarmente la vulnerabilità CVE-2021-42374, che consente di causare un'interruzione del servizio durante l'elaborazione di un file compresso strutturato in modo specifico da parte dell'utility unlzma, e nel caso di una compilazione con l'opzione CONFIG_FEATURE_SEAMLESS_LZMA, anche da qualsiasi altro componente di BusyBox, inclusi tar, unzip, rpm, dpkg, lzma e man.
Le vulnerabilità CVE-2021-42373, CVE-2021-42375, CVE-2021-42376 e CVE-2021-42377 permettono di causare un'interruzione del servizio, ma richiedono l'esecuzione delle utility man, ash e hush con parametri forniti dall'attaccante. Le vulnerabilità da CVE-2021-42378 a CVE-2021-42386 riguardano l'utility awk e potrebbero portare all'esecuzione di codice, ma per questo l'attaccante deve riuscire ad eseguire in awk un determinato pattern (è necessario avviare awk passando come primo argomento della riga di comando dati ricevuti dall'attaccante).
In aggiunta, si può notare la vulnerabilità (CVE-2021-43523) nelle librerie uclibc e uclibc-ng, legata al fatto che durante l'invocazione delle funzioni gethostbyname(), getaddrinfo(), gethostbyaddr() e getnameinfo() non viene eseguito alcun controllo e pulizia del nome di dominio restituito dal server DNS. Ad esempio, in risposta a una specifica richiesta di risoluzione, un server DNS controllato da un attaccante può restituire host del tipo ".attacker.com" e questi verranno restituiti invariati a un'applicazione, che senza pulizia potrebbe visualizzarli nell'interfaccia web. Il problema è stato risolto nella release di uclibc-ng 1.0.39 attraverso l'aggiunta di codice per la verifica della correttezza dei valori restituiti. nomi di dominio, realizzato in analogia con Glibc.
Fonte: opennet.ru
