The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Обновление nginx 1.4.4 с устранением уязвимости

20.11.2013 10:08

Выпущены внеплановое обновление стабильной ветки http-сервера nginx 1.4.4 и экспериментальный выпуск nginx 1.5.7 в которых устранена уязвимость (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 предложено использовать патч или заблокировать проявление проблемы обходным путём, добавив в блок server{} конфигурации:


    if ($request_uri ~ " ") {
        return 444;
    } 


  1. Главная ссылка к новости (http://mailman.nginx.org/piper...)
  2. OpenNews: Проект Nginx получил инвестиции в размере 10 млн долларов
  3. OpenNews: Nginx выпускает коммерческую версию - Nginx Plus
  4. OpenNews: Обновление прошлой стабильной ветки nginx 1.2.29 с устранением уязвимости
  5. OpenNews: Выявлена атака по внедрению бэкдора на web-серверы с lighttpd и nginx
  6. OpenNews: Вышел nginx 1.4.1 с устранением уязвимости, приводящей к удалённому выполнению кода
Лицензия: CC-BY
Тип: Проблемы безопасности
Короткая ссылка: https://opennet.ru/38478-nginx
Ключевые слова: nginx
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (29) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, SpiritOfStallman (ok), 10:45, 20/11/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >"/foo /../protected/file"

    А разве не грамотно игнорировать[запрещать] фишки, по типу ".."?

     
     
  • 2.3, Аноним (-), 10:53, 20/11/2013 [^] [^^] [^^^] [ответить]  
  • +/
    а разве их кто-то запрещает?
     

  • 1.2, Аноним (-), 10:49, 20/11/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    использовать пробелы в конце имён файлов это лал
     
     
  • 2.5, Аноним (-), 11:31, 20/11/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > использовать пробелы в конце имён файлов это лал

    Погляди спецификации WPAD и то, как яббло работает с именами wpad-файлов, например.

     
     
  • 3.8, гость (?), 12:42, 20/11/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >> использовать пробелы в конце имён файлов это лал
    > Погляди спецификации WPAD и то, как яббло работает с именами wpad-файлов, например.

    Поясни, что не так, если не сложно.

     
  • 2.11, pro100master (ok), 13:25, 20/11/2013 [^] [^^] [^^^] [ответить]  
  • –2 +/
    а при чем здесь имена файлов и пробелы? Проблема совершенно в другом, а именно, в некорректной обработке \0 с выходом на произвольный файл (т.е. имя может быть любым, какое захочет атакующий) в document_root. И само имя файла вообще не при делах, т.к. атака может быть через curl или другой софт :)
     
     
  • 3.19, angra (ok), 22:21, 20/11/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Попробуй новость почитать. Уязвимость именно с наличием пробелов, а не \0.

     

  • 1.4, Xaionaro (ok), 11:29, 20/11/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    IMHO, вообще моветон использовать имена файлов с кириллицой, пробелами и прочими приблудами.
     
     
  • 2.6, Аноним (-), 11:41, 20/11/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > IMHO, вообще моветон использовать имена файлов с кириллицой, пробелами и прочими приблудами.

    А с иероглифами можно? Если да, то почему с кириллицей нельзя? Если нет - то почему список не полный? ;)


     
     
  • 3.18, Xaionaro (ok), 17:48, 20/11/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >> IMHO, вообще моветон использовать имена файлов с кириллицой, пробелами и прочими приблудами.
    > А с иероглифами можно? Если да, то почему с кириллицей нельзя? Если
    > нет - то почему список не полный? ;)

    Я ж написал:

    > и прочими приблудами.

    Сюда и иероглифы входят и другие приблуды :)

     
  • 2.7, гость (?), 12:42, 20/11/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Истинно правоверными являются только 0 и 1.
    Всё остальное - напыщенные излишества.
     
     
  • 3.10, asand3r (?), 13:12, 20/11/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    "Есть только 0 и 1. Всё остальное от лукавого" (с) по-моему bash.org.ru =)
     
     
  • 4.13, pavlinux (ok), 15:17, 20/11/2013 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Есть высокий потенциал на проводнике и низкий, а 0 и 1 придумали ботаны!
     
     
  • 5.22, Аноним (-), 02:35, 21/11/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Есть высокий потенциал на проводнике и низкий, а 0 и 1 придумали ботаны!

    А как насчет дифференциальных линий? У USB например имеет смысл только состояние 2 проводников сразу. И состояний, очевидно, 4. А есть например Ethernet. У него так вообще несколько уровней напряжения в проводнике имеется. Это, конечно, придумали ботаны. Но ты этим пользуешься.

     
     
  • 6.27, pavlinux (ok), 22:59, 21/11/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> Есть высокий потенциал на проводнике и низкий, а 0 и 1 придумали ботаны!
    > А как насчет дифференциальных линий? У USB например имеет смысл только состояние
    > 2 проводников сразу. И состояний, очевидно, 4. А есть например Ethernet.
    > У него так вообще несколько уровней напряжения в проводнике имеется.

    Пля, прикинь а на оптике ваще фотоны летают, с разными длинами волн, и че?!
    Как это связано с Логикой?


     
     
  • 7.30, Аноним (-), 13:36, 22/11/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Как это связано с Логикой?

    Ну вот так. Ты сам полез коррелировать логику с уровнями напряжений. А я намекнул что с ними не все так просто. Скажем как тебе 4B3T? Где пачка из 4 бита за раз конвертится в три трехуровневых состояния :). А один бит при таком кодировании - вообще не существует как состояние линии. Обломись, да? Еще веселее схемы с предысторией :).

     
  • 2.21, Aesthetus Animus (ok), 02:08, 21/11/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > IMHO, вообще моветон использовать имена файлов с кириллицой, пробелами и прочими приблудами.

    http://ru.wiktionary.org/wiki/моветон

    Что в этом плохого?

     
     
  • 3.23, Xaionaro (ok), 15:37, 21/11/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> IMHO, вообще моветон использовать имена файлов с кириллицой, пробелами и прочими приблудами.
    > http://ru.wiktionary.org/wiki/моветон

    Я знаю что такое "моветон", не надо меня в словарь тыкать :)

    > Что в этом плохого?

    Просто на опыте. Использование всякой такой шняги приводит к неожиданным багам (как в функциональном плане, так и в плане безопасности). И это общеизвестно (а кому не известно, с опытом работы сам поймёт, IMHO). Собственно далеко идти не надо - смотри текст новости :). И, IMHO, каждый кто несмотря на это использует кириллицу, пробелы и прочие гадости частично сам виноват в последствиях.

     
     
  • 4.24, pavel_simple (ok), 15:49, 21/11/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >>> IMHO, вообще моветон использовать имена файлов с кириллицой, пробелами и прочими приблудами.
    >> http://ru.wiktionary.org/wiki/моветон
    > Я знаю что такое "моветон", не надо меня в словарь тыкать :)
    >> Что в этом плохого?
    > Просто на опыте. Использование всякой такой шняги приводит к неожиданным багам (как
    > в функциональном плане, так и в плане безопасности). И это общеизвестно
    > (а кому не известно, с опытом работы сам поймёт, IMHO). Собственно
    > далеко идти не надо - смотри текст новости :). И, IMHO,
    > каждый кто несмотря на это использует кириллицу, пробелы и прочие гадости
    > частично сам виноват в последствиях.

    ТакЪ! ПобедимЪ! нужно запретить кирилицу -- а всех кто ей пользуется растерелять чтобы не мучались. Понапридумывали понимаиишшш всяких букав.

    Да и китайцев с японцами и арабов до кучи.

     
     
  • 5.26, Xaionaro (ok), 20:59, 21/11/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >[оверквотинг удален]
    >> Я знаю что такое "моветон", не надо меня в словарь тыкать :)
    >>> Что в этом плохого?
    >> Просто на опыте. Использование всякой такой шняги приводит к неожиданным багам (как
    >> в функциональном плане, так и в плане безопасности). И это общеизвестно
    >> (а кому не известно, с опытом работы сам поймёт, IMHO). Собственно
    >> далеко идти не надо - смотри текст новости :). И, IMHO,
    >> каждый кто несмотря на это использует кириллицу, пробелы и прочие гадости
    >> частично сам виноват в последствиях.
    > ТакЪ! ПобедимЪ! нужно запретить кирилицу -- а всех кто ей пользуется растерелять
    > чтобы не мучались. Понапридумывали понимаиишшш всяких букав.

    Их дело. Хотят - пусть мучаются.

    Кстати говоря, я был против введения локализованных доменных имён. Но их тоже ввели. Чего уж тут поделать? :)


     
     
  • 6.28, pavel_simple (ok), 07:16, 22/11/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >[оверквотинг удален]
    >>> в функциональном плане, так и в плане безопасности). И это общеизвестно
    >>> (а кому не известно, с опытом работы сам поймёт, IMHO). Собственно
    >>> далеко идти не надо - смотри текст новости :). И, IMHO,
    >>> каждый кто несмотря на это использует кириллицу, пробелы и прочие гадости
    >>> частично сам виноват в последствиях.
    >> ТакЪ! ПобедимЪ! нужно запретить кирилицу -- а всех кто ей пользуется растерелять
    >> чтобы не мучались. Понапридумывали понимаиишшш всяких букав.
    > Их дело. Хотят - пусть мучаются.
    > Кстати говоря, я был против введения локализованных доменных имён. Но их тоже
    > ввели. Чего уж тут поделать? :)

    это был сарказм если чё -- но ты себя не ограничивай пиши на наши отупнеты транслитом.

     
     
  • 7.31, Xaionaro (ok), 13:58, 22/11/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >[оверквотинг удален]
    >>>> далеко идти не надо - смотри текст новости :). И, IMHO,
    >>>> каждый кто несмотря на это использует кириллицу, пробелы и прочие гадости
    >>>> частично сам виноват в последствиях.
    >>> ТакЪ! ПобедимЪ! нужно запретить кирилицу -- а всех кто ей пользуется растерелять
    >>> чтобы не мучались. Понапридумывали понимаиишшш всяких букав.
    >> Их дело. Хотят - пусть мучаются.
    >> Кстати говоря, я был против введения локализованных доменных имён. Но их тоже
    >> ввели. Чего уж тут поделать? :)
    > это был сарказм если чё -- но ты себя не ограничивай пиши
    > на наши отупнеты транслитом.

    Ненавижу, когда люди пишут транслитом :)

     
  • 4.29, Aesthetus Animus (ok), 10:46, 22/11/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > не надо меня в словарь тыкать :)

    Я не тычу тебя в словарь, а просто показываю вполне приемлеммое использование кириллицы ;-)

     

  • 1.9, бедный буратино (ok), 12:50, 20/11/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    на именах мы ставим крест
    inode - поколение next

    миллиардов номеров файлов хватит на всех!

     
  • 1.12, Sw00p aka Jerom (?), 14:39, 20/11/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    try_files в локейшене не спасает ?
     
     
  • 2.14, erera22 (ok), 16:27, 20/11/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    try_files для php файла?
     
     
  • 3.25, Sw00p aka Jerom (?), 16:53, 21/11/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    ну да собственно да

    location ~ \.php$ {
    try_files $fastcgi_script_name =404;

    пс: http://habrahabr.ru/post/100961/ предотвращение баги fix cgi path info

     

  • 1.20, PyMonty (?), 01:27, 21/11/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    "экспериментальный выпуск nginx 1.5.7"
    В чем его, простите, экспериментальность? На nginx.org написано: "основная версия nginx-1.5.7".
     
  • 1.32, пантелей (?), 14:27, 04/11/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Обновить
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2021 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру