Выпущены внеплановое обновление стабильной ветки http-сервера nginx 1.4.4 (http://mailman.nginx.org/pipermail/nginx-announce/2013/00012...) и экспериментальный выпуск nginx 1.5.7 (http://mailman.nginx.org/pipermail/nginx-announce/2013/00012...) в которых устранена уязвимость (http://mailman.nginx.org/pipermail/nginx-announce/2013/00012...) (CVE-2013-4547), позволяющая обойти ограничения доступа к закрытым областям сайта, при наличии на сервере директорий c именем, заканчивающимся на символ пробела. Проблема выявлена командой Google Security Team и проявляется во всех выпусках начиная с версии 0.8.41.
Суть проблемы сводится к возможности обхода блоков "location" через косвенное обращения к ресурсу с использованием разрешённой директории с пробелом в конце имени. В частности, если на сервере публично доступна директория "foo " и закрыт доступ к директории "protected" с использованием правила "location /protected/ { deny all; }", то получить доступ к содержимому директории "protected" можно отправив запрос "/foo /../protected/file" вместо "/protected/fire". Другим проявлением может стать возможность обращения в форме "/file \0.php" к скриптам с пробелом в имени при наличии правила "location ~ \.php$ { }".
При отправке таких запросов, сервер ограничивается проверкой маски в блоке до неэкранированного пробела. Причиной уязвимости является добавленный в версии nginx 0.8.41 код для обеспечения совместимости с некоторыми проблемными клиентскими приложениями, допускающий использование неэкранированных пробелов в URI, несмотря на недопустимость таких символов в протоколе HTTP (в URI должен фигурировать "%20", а не " ").
Пользователям прошлых версий nginx предложено можно использовать патч (http://nginx.org/download/patch.2013.space.txt) или заблокировать проявление проблемы обходным путём, добавив в блок server{} конфигурации:
<font color="#461b7e">
if ($request_uri ~ " ") {
return 444;
}
</font>
URL: http://mailman.nginx.org/pipermail/nginx-announce/2013/00012...
Новость: http://www.opennet.me/opennews/art.shtml?num=38478
>"/foo /../protected/file"А разве не грамотно игнорировать[запрещать] фишки, по типу ".."?
а разве их кто-то запрещает?
использовать пробелы в конце имён файлов это лал
> использовать пробелы в конце имён файлов это лалПогляди спецификации WPAD и то, как яббло работает с именами wpad-файлов, например.
>> использовать пробелы в конце имён файлов это лал
> Погляди спецификации WPAD и то, как яббло работает с именами wpad-файлов, например.Поясни, что не так, если не сложно.
а при чем здесь имена файлов и пробелы? Проблема совершенно в другом, а именно, в некорректной обработке \0 с выходом на произвольный файл (т.е. имя может быть любым, какое захочет атакующий) в document_root. И само имя файла вообще не при делах, т.к. атака может быть через curl или другой софт :)
Попробуй новость почитать. Уязвимость именно с наличием пробелов, а не \0.
IMHO, вообще моветон использовать имена файлов с кириллицой, пробелами и прочими приблудами.
> IMHO, вообще моветон использовать имена файлов с кириллицой, пробелами и прочими приблудами.А с иероглифами можно? Если да, то почему с кириллицей нельзя? Если нет - то почему список не полный? ;)
>> IMHO, вообще моветон использовать имена файлов с кириллицой, пробелами и прочими приблудами.
> А с иероглифами можно? Если да, то почему с кириллицей нельзя? Если
> нет - то почему список не полный? ;)Я ж написал:
> и прочими приблудами.
Сюда и иероглифы входят и другие приблуды :)
Истинно правоверными являются только 0 и 1.
Всё остальное - напыщенные излишества.
"Есть только 0 и 1. Всё остальное от лукавого" (с) по-моему bash.org.ru =)
Есть высокий потенциал на проводнике и низкий, а 0 и 1 придумали ботаны!
> Есть высокий потенциал на проводнике и низкий, а 0 и 1 придумали ботаны!А как насчет дифференциальных линий? У USB например имеет смысл только состояние 2 проводников сразу. И состояний, очевидно, 4. А есть например Ethernet. У него так вообще несколько уровней напряжения в проводнике имеется. Это, конечно, придумали ботаны. Но ты этим пользуешься.
>> Есть высокий потенциал на проводнике и низкий, а 0 и 1 придумали ботаны!
> А как насчет дифференциальных линий? У USB например имеет смысл только состояние
> 2 проводников сразу. И состояний, очевидно, 4. А есть например Ethernet.
> У него так вообще несколько уровней напряжения в проводнике имеется.Пля, прикинь а на оптике ваще фотоны летают, с разными длинами волн, и че?!
Как это связано с Логикой?
> Как это связано с Логикой?Ну вот так. Ты сам полез коррелировать логику с уровнями напряжений. А я намекнул что с ними не все так просто. Скажем как тебе 4B3T? Где пачка из 4 бита за раз конвертится в три трехуровневых состояния :). А один бит при таком кодировании - вообще не существует как состояние линии. Обломись, да? Еще веселее схемы с предысторией :).
> IMHO, вообще моветон использовать имена файлов с кириллицой, пробелами и прочими приблудами.http://ru.wiktionary.org/wiki/моветон
Что в этом плохого?
>> IMHO, вообще моветон использовать имена файлов с кириллицой, пробелами и прочими приблудами.
> http://ru.wiktionary.org/wiki/моветонЯ знаю что такое "моветон", не надо меня в словарь тыкать :)
> Что в этом плохого?
Просто на опыте. Использование всякой такой шняги приводит к неожиданным багам (как в функциональном плане, так и в плане безопасности). И это общеизвестно (а кому не известно, с опытом работы сам поймёт, IMHO). Собственно далеко идти не надо - смотри текст новости :). И, IMHO, каждый кто несмотря на это использует кириллицу, пробелы и прочие гадости частично сам виноват в последствиях.
>>> IMHO, вообще моветон использовать имена файлов с кириллицой, пробелами и прочими приблудами.
>> http://ru.wiktionary.org/wiki/моветон
> Я знаю что такое "моветон", не надо меня в словарь тыкать :)
>> Что в этом плохого?
> Просто на опыте. Использование всякой такой шняги приводит к неожиданным багам (как
> в функциональном плане, так и в плане безопасности). И это общеизвестно
> (а кому не известно, с опытом работы сам поймёт, IMHO). Собственно
> далеко идти не надо - смотри текст новости :). И, IMHO,
> каждый кто несмотря на это использует кириллицу, пробелы и прочие гадости
> частично сам виноват в последствиях.ТакЪ! ПобедимЪ! нужно запретить кирилицу -- а всех кто ей пользуется растерелять чтобы не мучались. Понапридумывали понимаиишшш всяких букав.
Да и китайцев с японцами и арабов до кучи.
>[оверквотинг удален]
>> Я знаю что такое "моветон", не надо меня в словарь тыкать :)
>>> Что в этом плохого?
>> Просто на опыте. Использование всякой такой шняги приводит к неожиданным багам (как
>> в функциональном плане, так и в плане безопасности). И это общеизвестно
>> (а кому не известно, с опытом работы сам поймёт, IMHO). Собственно
>> далеко идти не надо - смотри текст новости :). И, IMHO,
>> каждый кто несмотря на это использует кириллицу, пробелы и прочие гадости
>> частично сам виноват в последствиях.
> ТакЪ! ПобедимЪ! нужно запретить кирилицу -- а всех кто ей пользуется растерелять
> чтобы не мучались. Понапридумывали понимаиишшш всяких букав.Их дело. Хотят - пусть мучаются.
Кстати говоря, я был против введения локализованных доменных имён. Но их тоже ввели. Чего уж тут поделать? :)
>[оверквотинг удален]
>>> в функциональном плане, так и в плане безопасности). И это общеизвестно
>>> (а кому не известно, с опытом работы сам поймёт, IMHO). Собственно
>>> далеко идти не надо - смотри текст новости :). И, IMHO,
>>> каждый кто несмотря на это использует кириллицу, пробелы и прочие гадости
>>> частично сам виноват в последствиях.
>> ТакЪ! ПобедимЪ! нужно запретить кирилицу -- а всех кто ей пользуется растерелять
>> чтобы не мучались. Понапридумывали понимаиишшш всяких букав.
> Их дело. Хотят - пусть мучаются.
> Кстати говоря, я был против введения локализованных доменных имён. Но их тоже
> ввели. Чего уж тут поделать? :)это был сарказм если чё -- но ты себя не ограничивай пиши на наши отупнеты транслитом.
>[оверквотинг удален]
>>>> далеко идти не надо - смотри текст новости :). И, IMHO,
>>>> каждый кто несмотря на это использует кириллицу, пробелы и прочие гадости
>>>> частично сам виноват в последствиях.
>>> ТакЪ! ПобедимЪ! нужно запретить кирилицу -- а всех кто ей пользуется растерелять
>>> чтобы не мучались. Понапридумывали понимаиишшш всяких букав.
>> Их дело. Хотят - пусть мучаются.
>> Кстати говоря, я был против введения локализованных доменных имён. Но их тоже
>> ввели. Чего уж тут поделать? :)
> это был сарказм если чё -- но ты себя не ограничивай пиши
> на наши отупнеты транслитом.Ненавижу, когда люди пишут транслитом :)
> не надо меня в словарь тыкать :)Я не тычу тебя в словарь, а просто показываю вполне приемлеммое использование кириллицы ;-)
на именах мы ставим крест
inode - поколение nextмиллиардов номеров файлов хватит на всех!
try_files в локейшене не спасает ?
try_files для php файла?
ну да собственно даlocation ~ \.php$ {
try_files $fastcgi_script_name =404;пс: http://habrahabr.ru/post/100961/ предотвращение баги fix cgi path info
"экспериментальный выпуск nginx 1.5.7"
В чем его, простите, экспериментальность? На nginx.org написано: "основная версия nginx-1.5.7".
Обновить