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 +/
     

     ....ответы скрыты (5)

  • 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-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру