Azienda Eclypsium due vulnerabilità nel firmware del controller BMC fornito nei server Lenovo ThinkServer, che consentono a un utente locale di sostituire il firmware o di eseguire codice arbitrario sul chip BMC.
Ulteriori analisi hanno rivelato che questi problemi interessano anche i firmware dei controller BMC utilizzati nelle piattaforme server Gigabyte Enterprise Servers, che sono impiegate anche nei server di aziende come Acer, AMAX, Bigtera, Ciara, Penguin Computing e sysGen. Nei controller BMC problematici sono stati utilizzati firmware vulnerabili MergePoint EMS, sviluppati da un fornitore terzo, Avocent (attualmente parte della società Vertiv).
La prima vulnerabilità è causata dall'assenza di verifica crittografica degli aggiornamenti del firmware caricati (viene utilizzato solo il controllo del checksum CRC32, contrariamente a quanto previsto. NIST utilizza firme digitali, consentendo a un attaccante con accesso locale al sistema di sostituire il firmware BMC. Questo problema, ad esempio, può essere sfruttato per un'integrazione profonda di un rootkit, che rimane attivo anche dopo la reinstallazione del sistema operativo e blocca ulteriori aggiornamenti del firmware (per rimuovere il rootkit sarà necessario utilizzare un programmatore per riscrivere la memoria flash SPI).
La seconda vulnerabilità si trova nel codice di aggiornamento del firmware e consente di iniettare comandi personalizzati che verranno eseguiti nel BMC con il massimo livello di privilegi. Per attaccare è sufficiente modificare il valore del parametro RemoteFirmwareImageFilePath nel file di configurazione bmcfwu.cfg, che definisce il percorso dell'immagine del firmware da aggiornare. Durante il successivo aggiornamento, che può essere avviato tramite un comando IPMI, questo parametro verrà elaborato dal BMC e utilizzato nella chiamata popen() come parte della stringa per /bin/sh. Poiché la stringa per la creazione del comando shell è generata tramite la chiamata snprintf() senza un'adeguata pulizia dei caratteri speciali, gli aggressori possono iniettare il proprio codice da eseguire. Per sfruttare la vulnerabilità è necessario avere i diritti che consentono di inviare un comando al controller BMC tramite IPMI (in presenza dei diritti di amministratore sul server, è possibile inviare il comando IPMI senza ulteriore autenticazione).
Le aziende Gigabyte e Lenovo sono state informate dei problemi già a luglio 2018 e sono riuscite a rilasciare aggiornamenti prima della divulgazione pubblica delle informazioni. La società Lenovo aggiornamenti del firmware del 15 novembre 2018 per i server ThinkServer RD340, TD340, RD440, RD540 e RD640, che ha corretto solo la vulnerabilità che consentiva l'inserimento di comandi; poiché, durante lo sviluppo della linea di server basata su MergePoint EMS nel 2014, la verifica del firmware tramite firma digitale non era ancora ampiamente diffusa e non era inizialmente dichiarata.
L'8 maggio di quest'anno, la società Gigabyte ha rilasciato aggiornamenti del firmware per le schede madri con controller ASPEED AST2500, ma, come Lenovo, ha risolto solo la vulnerabilità legata all'inserimento di comandi. Le schede vulnerabili basate su ASPEED AST2400 rimangono ancora senza aggiornamento. Gigabyte inoltre il passaggio all'uso del firmware MegaRAC SP-X di AMI. Include anche nuovi firmware basati su MegaRAC SP-X che saranno offerti per i sistemi precedentemente forniti con firmware MergePoint EMS. La decisione è stata presa dopo l'annuncio di Vertiv riguardo alla cessazione del supporto per la piattaforma MergePoint EMS. Attualmente non ci sono informazioni sugli aggiornamenti del firmware per i server prodotti dalle aziende Acer, AMAX, Bigtera, Ciara, Penguin Computing e sysGen basati su schede Gigabyte e dotati di firmware vulnerabili MergePoint EMS.
Ricordiamo che il BMC è un controller specializzato installato nei server, dotato di proprio CPU, memoria, archiviazione e interfacce per il polling dei sensori, che fornisce un'interfaccia a basso livello per la supervisione e la gestione dell'hardware del server. Grazie al BMC, indipendentemente dal sistema operativo in esecuzione sul server, è possibile monitorare lo stato dei sensori, gestire l'alimentazione, i firmware e i dischi, organizzare l'avvio remoto tramite rete, garantire il funzionamento della console di accesso remoto, ecc.
Fonte: opennet.ru
