Вразливість у прошивках AMI MegaRAC, спричинена постачанням старої версії lighttpd

У прошивках MegaRAC від компанії American Megatrends (AMI), які застосовуються в контролерах BMC (Baseboard Management Сontroller), що використовуються виробниками серверів для організації автономного керування обладнанням, виявлено вразливість, що дозволяє неавтентифікованому атакуючому віддалено прочитати вміст пам'яті процесу, що забезпечує функціонування web. Вразливість проявляється у прошивках, що випускаються з 2019 року, та викликана постачанням старої версії HTTP-сервера Lighttpd, що містить невиправлену вразливість.

У кодовій базі Lighttpd ця уразливість була усунена ще у 2018 році у версії 1.4.51, але виправлення було внесено без присвоєння CVE-ідентифікатора та без публікації звіту з описом характеру вразливості. У примітці до випуску було згадано про усунення проблем з безпекою, але основна увага була акцентована на вразливості mod_userdir, пов'язаної з використанням символів «..» та «.» в імені користувача.

У списку змін також була згадана проблема з обробкою HTTP-заголовків, але дане виправлення було пропущено розробниками прошивки і не перенесено до складу продукту, оскільки примітка про потенційне усунення вразливості класу use-after-free була лише в тексті комміта, а в загальному списку змін було зазначено, що помилка призводить до звернення до пам'яті після звільнення.

Вразливість дозволяє прочитати вміст пам'яті поза виділеного буфера. Проблема викликана помилкою в коді злиття HTTP-заголовків, який застосовується при вказівці кількох екземплярів HTTP-заголовка «If-Modified-Since». При обробці другого екземпляра заголовка lighttpd виділяв новий буфер, щоб вмістити об'єднане значення і звільняв пам'ять під буфер, який було поміщено значення з першого заголовка. При цьому покажчик con->request.http_if_modified_since не змінювався і продовжував вказувати на звільнену область пам'яті.

Так як цей покажчик використовувався при операціях порівняння вмісту заголовка If-Modified-Since, результат яких приводив до генерації різних кодів повернення, атакуючий міг шляхом перебору вгадати новий вміст пам'яті, яку раніше займав перший буфер. Проблема могла використовуватися у поєднанні з іншими вразливими речовинами, наприклад, для визначення розкладки пам'яті для обходу механізмів захисту, таких як ASLR (рандомізація адресного простору).

Наявність вразливості підтверджена в серверних платформах Lenovo та Intel, але дані компанії не планують випускати оновлення прошивок через час підтримки, що використовують дані прошивки продуктів, і низького рівня небезпеки вразливості. Проблема проявляється у прошивках до платформ Intel M70KLP та Lenovo HX3710, HX3710-F та HX2710-E (уразливість присутня серед іншого в останніх версіях прошивок Lenovo 2.88.58 та Intel 01.04.0030). Додатково повідомляється, що вразливість у lighttpd також проявляється у прошивках до обладнання Supermicro та серверів, на яких використовуються BMC-контролери компаній Duluth та AETN.

Джерело: opennet.ru

Додати коментар або відгук