Vulnerabilidade no firmware AMI MegaRAC causada polo envío dunha versión antiga de lighttpd

Identificouse unha vulnerabilidade no firmware MegaRAC de American Megatrends (AMI), que se utiliza nos controladores BMC (Baseboard Management Controller) utilizados polos fabricantes de servidores para organizar a xestión autónoma de equipos, permitindo que un atacante non autenticado poida ler de forma remota o contido da memoria do proceso que proporciona o funcionamento da interface web. A vulnerabilidade aparece no firmware lanzado desde 2019 e é causada polo envío dunha versión antiga do servidor HTTP Lighttpd que contén unha vulnerabilidade sen parchear.

Na base de código Lighttpd, esta vulnerabilidade foi corrixida en 2018 na versión 1.4.51, pero a corrección realizouse sen asignar un identificador CVE e sen publicar un informe que describa a natureza da vulnerabilidade. A nota do lanzamento mencionaba correccións de seguridade, pero centrábase nunha vulnerabilidade en mod_userdir que implicaba o uso dos caracteres ".." e "." no nome de usuario.

A lista de cambios tamén mencionou un problema co procesamento de cabeceiras HTTP, pero os desenvolvedores do firmware perderon esta corrección e non foi transferida ao produto, xa que a nota sobre a posible eliminación da vulnerabilidade de clase use-after-free só estaba presente en o texto do commit, e na lista xeral non se fixeron cambios para indicar que o erro dá lugar a un acceso á memoria despois de libre.

A vulnerabilidade permite ler o contido da memoria fóra do búfer asignado. O problema é causado por un erro no código de combinación de cabeceiras HTTP que se utiliza cando se especifican varias instancias da cabeceira HTTP "If-Modified-Since". Ao procesar a segunda instancia da cabeceira, lighttpd asignou un novo búfer para manter o valor combinado e liberou memoria para o búfer que contiña o valor da primeira cabeceira. Neste caso, o punteiro con->request.http_if_modified_since non cambiou e continuou apuntando á área de memoria xa liberada.

Dado que este punteiro utilizouse nas operacións de comparación do contido da cabeceira If-Modified-Since, cuxo resultado levou á xeración de diferentes códigos de retorno, o atacante podía, por forza bruta, adiviñar o novo contido da memoria que se atopaba anteriormente. ocupado polo primeiro buffer. O problema podería usarse en combinación con outras vulnerabilidades, por exemplo para determinar a disposición da memoria para evitar mecanismos de seguridade como ASLR (Address Space Randomization).

Confirmouse a presenza da vulnerabilidade nas plataformas de servidores de Lenovo e Intel, pero estas empresas non teñen previsto lanzar actualizacións de firmware debido á expiración do tempo de soporte para produtos que usan estes firmwares e ao baixo nivel de gravidade da vulnerabilidade. O problema maniféstase no firmware das plataformas Intel M70KLP e Lenovo HX3710, HX3710-F e HX2710-E (a vulnerabilidade está presente, entre outras cousas, nas últimas versións de firmware Lenovo 2.88.58 e Intel 01.04.0030). Ademais, infórmase de que a vulnerabilidade en lighttpd tamén aparece no firmware dos equipos Supermicro e nos servidores que usan controladores BMC de Duluth e AETN.

Fonte: opennet.ru

Engadir un comentario