1/5 - (1 голос)

Связка php-fpm nginx очень популярна в работе сайтов. Поэтому, мы решили разместить выдержку из журнала Хакер, по эксплуатации новой уязвимости в этой связке:

Сегодня я разобрал одну из самых интересных за последнее время уязвимостей. Здесь прекрасно все: от обнаружения до написания полноценного эксплоита с критическим импактом. Это отличный пример того, как превратить аномалию в полноценно работающий вектор атаки. Для этого нужно понимать механизм работы исследуемого приложения и усердно ресерчить.

Найденная уязвимость в очередной раз доказывает, что даже в таких крупных продуктах, как PHP, еще полно необнаруженных уязвимостей.

Хотя здесь и имеется определенный список начальных условий, не стоит думать, что их не бывает в дикой природе. Совсем наоборот. Nginx — штука гибкая, и существует огромное количество заведомо уязвимых конфигов. Плюс ко всему разработчики любят копировать готовые настройки друг у друга, не проводя даже минимальный их анализ. Это тоже не прибавляет безопасности.

  • слову, дефолтный конфиг Ubuntu 18.04 от падения в пучину RCE отделяет всего одна строка — try_files $fastcgi_script_name =404;.

уязвимость nginx

Дефолтный конфиг fastcgi.conf для nginx в Ubuntu 18.04

Если ее убрать, то получаем уязвимую среду. А это не такой уж и редкий случай. Представь, что nginx и PHP‐FPM находятся на разных машинах. Такая схема довольно часто встречается в продакшене.

Есть еще несколько конфигураций, когда в fastcgi_split_path_info используется более жесткое регулярное выражение, но эксплуатация все еще возможна. Советую посмотреть пуллреквест самого Эмиля. Если хочешь еще глубже копнуть в этом направлении, то начни с разбора уязвимости, которую нашел Оранж Цай. У него тоже есть несколько дополнительных способов оптимизировать эксплоит.

Что касается патча, то разработчики довольно быстро отреагировали на инцидент и залатали брешь. Но дистрибутивы PHP не так часто обновляются на серверах, поэтому в ближайшее время будет еще множество потенциально уязвимых продуктов. Так что не зевай, следи за обновлениями дистрибутивов и своевременно накатывай патчи! Особенно те, которые повышают безопасность. Обращайтесь [email protected], мы поможем защитить ваши системы.