Представен първият издание на новата основна версия nginx 1.27.0, в рамките на която ще продължи развитието на нови възможности. Същевременно е оформено издание nginx 1.26.1, което принадлежи на паралелно поддържаната стабилна версия, в която се внасят само промени, свързани с отстраняването на сериозни грешки и уязвимости. Следващата година на базата на основната версия 1.27.x ще бъде оформена стабилна версия 1.28. Кодът на проекта е написан на езика C и се разпространява под лицензия BSD.
В новите издания са отстранени 4 уязвимости, засягащи експерименталния модул ngx_http_v3 (дефолтно деактивиран), който осигурява поддръжка за протокола HTTP/3, използващ протокол QUIC като транспорт за HTTP/2. Проблемите се проявяват само при активиране на модула ngx_http_v3_module и задаване на опцията "quic" в директивата "listen". По отношение на уязвимостите на fork-овете 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»).
Източник: opennet.ru
