Подано перший випуск нової основної гілки 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»).
Джерело: opennet.ru
