Създадено е издание на основната версия nginx 1.25.4, в което продължава развитието на нови възможности. В паралелно поддържаната стабилна версия 1.24.x се извършват само изменения, свързани с отстраняване на сериозни грешки и уязвимости. Впоследствие на базата на основната версия 1.25.x ще бъде създадена стабилна версия 1.26. Кодът на проекта е написан на езика C и се разпространява под лиценза BSD.
В новата версия са отстранени две уязвимости в експерименталния модул http_v3_module (изключен по подразбиране), който осигурява поддръжка на протокол HTTP/3, използващ протокола QUIC като транспорт за HTTP/2. Първата уязвимост (CVE-2024-24989) е причинена от разыменоване на нулев указател, а втората (CVE-2024-24990) от достъп до памет след нейното освобождаване. В списъка с промени е посочено, че и двете уязвимости могат да доведат само до аварийно завършване на работния процес при обработка на специално форматирани сесии QUIC, но за втората уязвимост явно не е проведен анализ за по-сериозни последици.
В допълнение към отстраняването на уязвимостите, новата версия също така включва общи подобрения и корекции в реализацията на HTTP/3, както и отстраняване на грешки, свързани с изтичане на сокети, грешки в сокетите или аварийно завършване при използване на AIO. Проблемът с преждевременното затваряне на връзките с незавършени AIO операции по време на меко затваряне на стари работни процеси е решен. Отстранено е аварийното завършване при пренасочване на грешки с код 415 с помощта на директивата error_page, в случай на използване SSL- на проксироване и директивата image_filter.
Освен това, преди няколко дни бе пуснато njs 0.8.4, интерпретатор за JavaScript за на уеб-сервера nginx. Интерпретаторът njs реализира стандартите на ECMAScript и позволява разширяване на възможностите на nginx за обработка на заявки с помощта на скриптове в конфигурацията. Скриптове могат да се използват в конфигурационния файл за определяне на разширена логика за обработка на заявки, формулиране на конфигурация, динамично генериране на отговор, модифициране на запитването/отговора или бързо създаване на заместители за решаване на проблеми в уеб приложенията. В новата версия са отбелязани само корекции на грешки.
Източник: opennet.ru
