Представлен первый выпуск новой основной ветки nginx 1.27.0, в рамках которой будет продолжено развитие новых возможностей. Одновременно сформирован выпуск nginx 1.26.1, относящийся к параллельно поддерживаемой стабильной ветке, в которую вносятся только изменения, связанные с устранением серьёзных ошибок и уязвимостей. В следующем году на базе основной ветки 1.27.x будет сформирована стабильная ветка 1.28. Код проекта написан на языке Си и распространяется под лицензией BSD.
В новых выпусках устранены 4 уязвимости, затрагивающие экспериментальный модуль ngx_http_v3 (отключён по умолчанию), обеспечивающий поддержку протокола HTTP/3, использующего протокол QUIC в качестве транспорта для HTTP/2. Уязвимость CVE-2024-34161 приводит к утечке содержимого памяти рабочего процесса на системах с MTU, выставленным в значение больше 4096 байт.
Уязвимости CVE-2024-31079, CVE-2024-32760 и CVE-2024-35200 вызваны повреждением памяти и позволяют удалённому атакующему добиться аварийного завершения рабочего процесса nginx через установки специально оформленного сеанса QUIC. При этом для уязвимостей CVE-2024-31079 и CVE-2024-32760 не исключаются и другие последствия атаки (потенциальная возможность выполнения кода атакующего?). Проблемы проявляются только при активации модуля ngx_http_v3_module и выставлении опции “quic” в директиве “listen”. О подверженности уязвимостям форков Angie и FreeNginx пока ничего не сообщается.
Среди не связанных с устранением уязвимостей изменений в 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”).