Представена първата версия на новата основна клонка 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“. За уязвимостите на форковете 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
