Vulnerabilitat al firmware AMI MegaRAC causada per l'enviament d'una versió antiga de lighttpd

S'ha identificat una vulnerabilitat al firmware MegaRAC d'American Megatrends (AMI), que s'utilitza en controladors BMC (Baseboard Management Controller) utilitzats pels fabricants de servidors per organitzar la gestió autònoma d'equips, permetent a un atacant no autenticat llegir de forma remota el contingut de la memòria del procés que proporciona el funcionament de la interfície web. La vulnerabilitat apareix al firmware llançat des del 2019 i és causada per l'enviament d'una versió antiga del servidor HTTP Lighttpd que conté una vulnerabilitat sense pegat.

A la base de codi Lighttpd, aquesta vulnerabilitat es va solucionar el 2018 a la versió 1.4.51, però la correcció es va fer sense assignar un identificador CVE i sense publicar un informe que descrigués la naturalesa de la vulnerabilitat. La nota de llançament esmentava correccions de seguretat, però es va centrar en una vulnerabilitat a mod_userdir que implica l'ús dels caràcters ".." i "." al nom d'usuari.

La llista de canvis també esmentava un problema amb el processament de les capçaleres HTTP, però els desenvolupadors del microprogramari van perdre aquesta correcció i no es va transferir al producte, ja que la nota sobre la possible eliminació de la vulnerabilitat de la classe d'ús després de lliure només estava present a el text de la confirmació, i a la llista general no s'han fet canvis per indicar que l'error dóna lloc a un accés a la memòria després de lliure.

La vulnerabilitat permet llegir el contingut de la memòria fora del buffer assignat. El problema és causat per un error al codi de combinació de la capçalera HTTP que s'utilitza quan s'especifica diverses instàncies de la capçalera HTTP "If-Modified-Since". En processar la segona instància de la capçalera, lighttpd va assignar una memòria intermèdia nova per contenir el valor combinat i va alliberar memòria per a la memòria intermèdia que contenia el valor de la primera capçalera. En aquest cas, el punter con->request.http_if_modified_since no va canviar i va continuar apuntant a l'àrea de memòria ja alliberada.

Com que aquest punter es va utilitzar en operacions de comparació del contingut de la capçalera If-Modified-Since, el resultat de la qual va provocar la generació de diferents codis de retorn, l'atacant podia, per força bruta, endevinar el nou contingut de la memòria que es trobava anteriorment. ocupat pel primer buffer. El problema es podria utilitzar en combinació amb altres vulnerabilitats, per exemple per determinar la disposició de la memòria per evitar mecanismes de seguretat com l'ASLR (Address Space Randomization).

La presència de la vulnerabilitat s'ha confirmat a les plataformes de servidors de Lenovo i Intel, però aquestes empreses no tenen previst llançar actualitzacions de microprogramari a causa de l'expiració del temps de suport per als productes que utilitzen aquests microprogramaris i el baix nivell de gravetat de la vulnerabilitat. El problema es manifesta en el firmware de les plataformes Intel M70KLP i Lenovo HX3710, HX3710-F i HX2710-E (la vulnerabilitat està present, entre altres coses, a les últimes versions de firmware Lenovo 2.88.58 i Intel 01.04.0030). A més, s'informa que la vulnerabilitat de lighttpd també apareix al firmware dels equips Supermicro i als servidors que utilitzen controladors BMC de Duluth i AETN.

Font: opennet.ru

Afegeix comentari