Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Для тех, кто не может обновиться, представлена инструкция с использованием стандартной утилиты брандмауэра.Стандартной для кого, для ModSecurity? Или WallArm? Тут даже не надмозг, тут просто не подумали.
Add this line before ALL YOUR "location ~ \.php(/|$) {" LINES in nginx confs:
```
rewrite ^(.*?)\n $1; #Fix CVE-2019-11043 (THIS LINE!!!)
location ~ \.php(/|$) {
...
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
...
```
That will truncate PATH_INFO after "\n" while URL contains "%0a".В нём, но через php
В PHP5 есть такая же проблема. Но данный эксплоит использует функцию для оптимизации процесса, которая есть только в PHP7. По этой причине данный эксплоит будет работать только с PHP7.
Но это не отменяет существования способа воспользоваться этой уязвимостью на PHP5.
Существует уже давно принята практика единой точки входа в веб приложение. В своих конфигурациях всегда использую прямой путь только к index.php файлу. Это еще и защищает от соблазна создавать всякие infophp(); файлы в корне. К тому же это уже не первая уязвимость, связанная с путями в связки nginx+php-fpm.
Уязвимость найдена в конфигурации nginx, где проброс в PHP-FPM осуществляется c разделением частей URL при помощи fastcgi_split_path_info и определением переменной окружения PATH_INFO, но без предпроверки существования файла директивой try_files $fastcgi_script_name или конструкцией if
Иными словами, уязвимость найдена в давно deprecated фичах родом из апача и 10+ лет назад, которые поддерживаются современным софтом только для совместимости с древними пхп-скриптами.
Выявлена уязвимость PHP 7, которая помогает перехватывать контроль над NGINX-серверами