Още една уязвимост в 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, или достъп до корена на FS «\/». Тъй като обикновено такъв достъп не се предоставя, атаката за изпълнение на код е малко приложима в реалните системи.

В същото време остава актуална атаката за получаване на съдържанието на произволни системни файлове и изходни текстове на уеб-скриптове, достъпни за четене от потребителя, под който е стартиран 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/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/etc/passwd’ curl ‘http://192.168.0.1/aliaseddir/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/usr/local/apache2/cgi-bin/test.cgi’

Проблемът засяга основно непрекъснато обновявани дистрибуции, като Fedora, Arch Linux и Gentoo, както и портовете на FreeBSD. Пакетите в стабилните клонове на консервативни сървърни дистрибуции Debian, RHEL, Ubuntu и SUSE не са уязвими. Проблемът не се проявява, когато достъпът до каталогите е явно забранен чрез настройката „require all denied“.

Източник: opennet.ru

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster