The OpenNET Project / Index page

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

Новая версия nginx 1.27.0 c устранением 4 уязвимостей в реализации HTTP/3

29.05.2024 19:41

Представлен первый выпуск новой основной ветки nginx 1.27.0, в рамках которой будет продолжено развитие новых возможностей. Одновременно сформирован выпуск nginx 1.26.1, относящийся к параллельно поддерживаемой стабильной ветке, в которую вносятся только изменения, связанные с устранением серьёзных ошибок и уязвимостей. В следующем году на базе основной ветки 1.27.x будет сформирована стабильная ветка 1.28. Код проекта написан на языке Си и распространяется под лицензией BSD.

В новых выпусках устранены 4 уязвимости, затрагивающие экспериментальный модуль ngx_http_v3 (отключён по умолчанию), обеспечивающий поддержку протокола HTTP/3, использующего протокол QUIC в качестве транспорта для HTTP/2. Проблемы проявляются только при активации модуля ngx_http_v3_module и выставлении опции "quic" в директиве "listen". О подверженности уязвимостям форков Angie и FreeNginx пока ничего не сообщается.

Уязвимость CVE-2024-34161 приводит к утечке содержимого памяти рабочего процесса на системах с MTU, выставленным в значение больше 4096 байт. Утечка содержимого памяти возникает в случае отправки кадров CRYPTO, используемых при согласовании соединения, на стадии после отправки клиентом финализирующего сообщения.

Уязвимости CVE-2024-31079, CVE-2024-32760 и CVE-2024-35200 вызваны повреждением памяти и позволяют удалённому атакующему добиться аварийного завершения рабочего процесса nginx через установку специально оформленного сеанса на базе протокола QUIC. При этом для уязвимостей CVE-2024-31079 и CVE-2024-32760 не исключаются и другие последствия атаки (потенциальная возможность выполнения кода атакующего?). Детали не приводятся, но судя по исправлениям в коде уязвимости вызваны обращением к уже освобождённой памяти (use-after-free), неверным выделением памяти под массив, разыменованием нулевого указателя и отсутствием должной проверки размера помещаемых в буфер данных.

Среди не связанных с устранением уязвимостей изменений в nginx 1.27.0:

  • В директивах "proxy_limit_rate", "fastcgi_limit_rate", "scgi_limit_rate" и "uwsgi_limit_rate" добавлена поддержка указания переменных.
  • Снижено потребление памяти при обработке долгоживущих запросов в конфигурациях, в которых используются директивы "gzip", "gunzip", "ssi", "sub_filter" или "grpc_pass".
  • Решены проблемы со сброкой в GCC 14 при использовании опции "--with-atomic".
  • Исправлены ошибки в реализации HTTP/3.

Дополнительно можно отметить публикацию новой основной ветки FreeNginx 1.27.0, форка Nginx, развиваемого Максимом Дуниным, одним из ключевых разработчиков Nginx. FreeNginx позиционируется как некоммерческий проект, обеспечивающий разработку кодовой базы Nginx без корпоративного вмешательства. В новой версии улучшена обработка ошибок во время чтения тела запроса, налажена сборка в NetBSD 10.0 и улучшена запись PID-файлов (в директиву "pid" добавлен параметр "off").

 
  1. Главная ссылка к новости (https://mailman.nginx.org/pipe...)
  2. OpenNews: Выпуск nginx 1.26.0 с поддержкой HTTP/3
  3. OpenNews: В nginx 1.25.4 и Angie 1.4.1 устранены уязвимости, связанные с HTTP/3
  4. OpenNews: Выпуск Angie 1.5.0, российского форка Nginx
  5. OpenNews: Представлен FreeNginx, форк Nginx, созданный из-за несогласия с политикой компании F5
  6. OpenNews: Выпуск сервера приложений NGINX Unit 1.31
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/61269-nginx
Ключевые слова: nginx, freenginx
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (38) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 19:58, 29/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +4 +/
    Опять CVE для дев ветки? Дунин опять уйдёт из F5?
     
     
  • 2.22, Аноним (-), 00:33, 30/05/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    > Опять CVE для дев ветки?
    > Дунин опять уйдёт из F5?

    Конечно!
    Но только после того, как заберет патчи в свою Свободную™ версию

     

  • 1.2, morphe (?), 20:52, 29/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +4 +/
    Тем временем реализация на Rust модуля quic под nginx от cloudflare давно работает в проде, и не имеет известных уязвимостей
     
     
  • 2.3, Аноним (3), 20:54, 29/05/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • –1 +/
    > работает в проде
    > не имеет известных уязвимостей

    Это ещё не аргумент в пользу модных язычков.

     
     
  • 3.38, Аноним (-), 11:04, 30/05/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +2 +/
    > Это ещё не аргумент в пользу модных язычков.

    Конечно! Нужно использовать древнейший копролитный язык, и проект на нем, в котором точно есть известные уязвимости!
    Их же можно будет искать и исправлять десятилетиями.
    Заодно без работы не останутся)

     
  • 2.4, Аноним (4), 21:17, 29/05/2024 [^] [^^] [^^^] [ответить]  [] []     [к модератору]
  • +/
    >не имеет известных уязвимостей

    Ну ничего, зато неизвестные на месте, учитывая количество unsafe блоков в ржавых проектах.

     
     
  • 3.18, Аноним (3), 23:50, 29/05/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • –2 +/
    Ну найдите хоть одну :)

    Код на сишке — это 100% unsafe. Код на rust с одним unsafe на 1000 строк — 0.1% unsafe.

     
  • 2.5, Аноним (5), 21:30, 29/05/2024 [^] [^^] [^^^] [ответить]  [] []     [к модератору]
  • –1 +/
    Тем временем клоунфларе с помощью ресурсов типа ценсис и днсдампстер обходится с вероятностью процентов 80.
     
     
  • 3.8, Аноним (8), 22:38, 29/05/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • –1 +/
    > с вероятностью процентов 80

    Показывай, как рассчитывал. И заодно расскажи, как тебе эти погремушки помогают пробить фаерволл и mTLS.

    Обожаю опеннетных кекспертов, от кого ещё узнаешь о чём пацаны за гаражами болтают?

     
     
  • 4.17, Аноним (3), 23:49, 29/05/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    Если злоумышленники знают ваш внешний адрес, на который ходит cloudflare, они могут легко залить вас трафиком, и никакой фаервол вам не поможет. И cloudflare сможет только показать, что конечный сервер недоступен.
     
     
  • 5.23, Аноним (8), 01:47, 30/05/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > Если злоумышленники знают
    > Если

    А если не знают? Да и откуда им его узнать, если эндпоинт ником кроме CF не отвечает?

     
  • 4.35, Аноним (5), 10:20, 30/05/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    Исключительно ежедневная практика и статистика.
    Судя по тому, что ты написал ты в принципе не понимаешь как WAF такого типа работает и что за ценсис с днсдампстером.
    Так что теоретизируй на кафедре с другими всезнайками дальше.
     
     
  • 5.53, Аноним (8), 19:00, 30/05/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    > Исключительно ежедневная практика и статистика.

    Стало быть точно пацаны за гаражами рассказывали. Ни ценсис, ни днсдампер тебе никак не помогут найти бэкэнд за «WAF такого типа», при условии, что всё настроено по BCP. Я это на практике знаю, так как всех своих клиентов первым делом подключаю к публичному интернету через CF, специально чтобы школьники с ценсисом в логах не шумели. Но даже если я перечислю все подсети, тебе это всё равно никак не поможет. Трафик тупо заблэкхолится на границе AS наших аплинков.

     
  • 2.15, Аноним (15), 22:57, 29/05/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • –1 +/
    ну всё просто. любая программа имеет уязвимости особенно новая.
    если они не найдены то она просто никому не нужна
     
  • 2.25, Аноним (25), 03:26, 30/05/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    О, а можно ссылку на то как это завести.
     
  • 2.43, Аноним (-), 11:52, 30/05/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • –1 +/
    > Тем временем реализация на Rust модуля quic под nginx от cloudflare давно
    > работает в проде, и не имеет известных уязвимостей

    Так новостей про "просто работает" много не насочиняешь)
    Разве что "вышла новая версия", да и в комментах будет уныло.

    А вот новость про типичную дырку "шел по буферу, считать не научился, вышел за пределы, все сломал" соберет кучу комментов.
    А веселые обсуждения, это хорошо)


     

  • 1.7, Аноним (8), 22:30, 29/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • –1 +/
    > налажена сборка в NetBSD

    Нужность примерно такая же, как и у самого форка. Как нельзя лучше иллюстрирует мой тезис о том, что «без корпоративного вмешательства» программисты будут бесконечно оптимизировать тулчейн.

     
     
  • 2.13, Аноним (13), 22:47, 29/05/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    И чего? Есть в ТЗ поддержка нетбсд, программист взял тикет, закрыл. Причина тряски? Или ты не знаешь как работают команды людей?
     
     
  • 3.20, Аноним (8), 00:25, 30/05/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    > Есть в ТЗ поддержка нетбсд
    > Или ты не знаешь как работают команды людей?

    Как команды работают я знаю очень хорошо, и потому с уверенностью могу сказать, что в ТЗ поддержки NetBSD нет и быть не может, потому что не существует валидного бизнес-кейса для поддержки маргинальных ОС.

     
  • 2.27, Аноним (27), 03:46, 30/05/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    А какое ваше дело, чем человек занимается в свое свободное время? Он вам что-то должен? Долговая расписка есть?
     
     
  • 3.54, Аноним (8), 19:02, 30/05/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Так это всё-таки хобби-проект, как и предполагалось изначально. А чего тогда Дунин пыжился, мол, ещё неизвестно кто форк? Цену себе набивал?
     

  • 1.16, Аноним (15), 23:22, 29/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +1 +/
    почему бы не стандартизировать интерфейс для подобных протоколов и потом браузер сначала скачивает с сервера и кеширует код для протокола запускает его и дальше работает как задумано.
     
     
  • 2.50, Аноним (50), 16:00, 30/05/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Стандартизация подразумевает множество реализации. А догорняк – реализации тех, кого надо и с кем надо договориться. Потом у них все возьмут и будут сверяться как с эталоном. И так много западных технологий работают.
     

  • 1.19, Аноним (-), 00:18, 30/05/2024 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –1 +/
     

  • 1.21, Анонин (-), 00:29, 30/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +/
    Фиксы как всегда шикарны))

    + qb->last_chain = NULL;
    Ну забыли занулить, бывает, дело то житейское)

    - elts = ngx_alloc(max * sizeof(void *), c->log);
    + elts = ngx_alloc((max + 1) * sizeof(void *), c->log);
    Не умеем считать размер выделяемой памяти начиная с 1972 года...

    + st->value.data = (u_char *) "";
    Зачем инициализировать данные, если можно про это забыть. Дважды!

    + if ((size_t) (end - p) < len)
    Проверка входных данных - это особое тайное знание.
    О котором большинство сишников даже не догадывается...

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

     
     
  • 2.24, Rev (?), 02:39, 30/05/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • –1 +/
    Да, такое впечатление, что писано жопой. Или студентами.

    А сколько вою на болотах стоит на тему "скиллы всё решают, раст не нужен"!

     
     
  • 3.32, Tron is Whistling (?), 09:23, 30/05/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    Да он и не нужен, независимо от прочих факторов.
     
  • 3.40, Аноним (44), 11:50, 30/05/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Только все нормальные веб серверы написаны на Go. Раст отстал в этом плане на миллион лет от нормальных языков.
     
  • 2.28, Аноним (27), 03:50, 30/05/2024 [^] [^^] [^^^] [ответить]  [] []     [к модератору]
  • +1 +/
    Это модуль в стадии разработки. На сайте английским (да и русским) по белому написано, что для продакшена не готово.

    Ну, Сысоев с Дуниным, конечно, лучше писали и с первого раза, но они вообще среди лучших. Но и тут нормально, до релиза нашли и исправили, всё хорошо.

     
     
  • 3.55, Аноним (8), 17:50, 01/06/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Сысоев и Дунин, возможно, хорошие кодеры, но время показало в очередной раз, что даже самые лучшие кодеры в лучшем случае посредственные программисты, и совсем никакие архитекторы. Подробности о плохом дизайне Nginx можно почитать да хоть у тех же CloudFlare, которые в отличие от местных анонимов с вэпээсочкой за два евро в месяц использовали Nginx в проде в хвост и в гриву.
     
  • 2.29, Аноним (29), 05:42, 30/05/2024 [^] [^^] [^^^] [ответить]  [] []     [к модератору]
  • +/
    Так надо было на С++ писать сразу. Raii и всё.
     
     
  • 3.41, Аноним (44), 11:51, 30/05/2024 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    И как ты потом будешь мериться синтетикой которая будет показывать дико плохие результаты?
     
  • 2.31, Совершенно другой аноним (?), 09:12, 30/05/2024 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    > + st->value.data = (u_char *) "";
    > Зачем инициализировать данные, если можно про это забыть. Дважды!

    Ну, Вы вот тоже не смогли до 3-рёх посчитать...

     

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



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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