Ang kahinaan sa AMI MegaRAC firmware na dulot ng pagpapadala ng lumang bersyon ng lighttpd

Natukoy ang isang kahinaan sa MegaRAC firmware mula sa American Megatrends (AMI), na ginagamit sa mga controller ng BMC (Baseboard Management Controller) na ginagamit ng mga tagagawa ng server upang ayusin ang autonomous na pamamahala ng kagamitan, na nagpapahintulot sa isang hindi napatotohanan na umaatake na malayuang basahin ang mga nilalaman ng memorya ng proseso na nagbibigay ng paggana ng web interface. Lumilitaw ang kahinaan sa firmware na inilabas mula noong 2019 at dulot ng pagpapadala ng lumang bersyon ng Lighttpd HTTP server na naglalaman ng hindi na-patch na kahinaan.

Sa Lighttpd codebase, naayos ang kahinaang ito noong 2018 sa bersyon 1.4.51, ngunit ginawa ang pag-aayos nang hindi nagtatalaga ng CVE identifier at nang hindi nag-publish ng ulat na naglalarawan sa katangian ng kahinaan. Ang tala sa paglabas ay nagbanggit ng mga pag-aayos sa seguridad, ngunit nakatuon sa isang kahinaan sa mod_userdir na kinasasangkutan ng paggamit ng ".." at "." sa username.

Ang listahan ng mga pagbabago ay nagbanggit din ng isang problema sa pagproseso ng mga header ng HTTP, ngunit ang pag-aayos na ito ay napalampas ng mga developer ng firmware at hindi inilipat sa produkto, dahil ang tala tungkol sa potensyal na pag-aalis ng kahinaan ng klase pagkatapos ng paggamit ay naroroon lamang sa ang teksto ng commit, at sa pangkalahatang listahan walang mga pagbabagong ginawa upang ipahiwatig na ang error ay nagreresulta sa isang memory access pagkatapos ng libre.

Ang kahinaan ay nagbibigay-daan sa mga nilalaman ng memorya na mabasa sa labas ng inilaan na buffer. Ang isyu ay sanhi ng isang bug sa HTTP header merge code na ginamit kapag tumutukoy ng maraming pagkakataon ng "If-Modified-Since" HTTP header. Kapag pinoproseso ang pangalawang instance ng header, naglaan ang lighttpd ng bagong buffer para hawakan ang pinagsamang halaga at pinalaya ang memory para sa buffer na naglalaman ng halaga mula sa unang header. Sa kasong ito, ang con->request.http_if_modified_since pointer ay hindi nagbago at nagpatuloy sa pagturo sa na-libre na memory area.

Dahil ang pointer na ito ay ginamit sa mga operasyong naghahambing ng mga nilalaman ng If-Modified-Since na header, na ang resulta ay humantong sa pagbuo ng iba't ibang mga return code, ang umaatake ay maaaring, sa pamamagitan ng malupit na puwersa, hulaan ang mga bagong nilalaman ng memorya na dati. inookupahan ng unang buffer. Maaaring gamitin ang isyu kasabay ng iba pang mga kahinaan, halimbawa upang matukoy ang layout ng memorya upang i-bypass ang mga mekanismo ng seguridad tulad ng ASLR (Address Space Randomization).

Ang pagkakaroon ng kahinaan ay nakumpirma sa mga platform ng Lenovo at Intel server, ngunit ang mga kumpanyang ito ay hindi nagpaplano na maglabas ng mga update sa firmware dahil sa pag-expire ng oras ng suporta para sa mga produkto na gumagamit ng mga firmware na ito at ang mababang antas ng kalubhaan ng kahinaan. Ang problema ay nagpapakita mismo sa firmware para sa Intel M70KLP at Lenovo HX3710, HX3710-F at HX2710-E na mga platform (ang kahinaan ay naroroon, bukod sa iba pang mga bagay, sa pinakabagong mga bersyon ng firmware na Lenovo 2.88.58 at Intel 01.04.0030). Bukod pa rito, iniulat na ang kahinaan sa lighttpd ay lumilitaw din sa firmware para sa Supermicro equipment at sa mga server na gumagamit ng BMC controllers mula sa Duluth at AETN.

Pinagmulan: opennet.ru

Magdagdag ng komento