Публикувана версия на основната клон на nginx 1.29.1, в която продължава развитието на нови функции. В успоредно поддържаната стабилна версия 1.28.x се въвеждат само промени, свързани с отстраняването на сериозни грешки и уязвимости. В бъдеще на базата на основната версия 1.29.x ще бъде създадена стабилна версия 1.30. Кодът на проекта е написан на езика Си и се разпространява под лиценз BSD.
В новото издание:
- Отстранена е уязвимост (CVE-2025-53859) в модула ngx_mail_smtp_module, водеща до четене на данни от паметта извън буфера при обработка на специално форматирани стойности на логини и пароли при използване на метода за удостоверяване „none“. Уязвимостта може да доведе до изтичане на съдържанието на паметта на работния процес nginx в HTTP заявка към външен сървъра удостоверяване. Патч.
- По подразбиране е деактивирано компресирането на сертификатите TLSv1.3.
- Добавена е директива «ssl_certificate_compression» за управление на компресията TLS-сертификати.
- В реализацията на протокола QUIC е добавена поддръжка на режима 0-RTT, наличен в системи с OpenSSL 3.5.1 и по-нови версии.
- Отстранена е грешка, водеща до буферизиране на HTTP отговор 103 при използване на HTTP/2 и директивата „early_hints“.
- Отстранена е грешка в обработчика на параметъра „none“ в директивата „smtp_auth“.
- В реализацията на HTTP/3 е решен проблемът с обработката на номера на порта в заглавката „Host“.
- Отстранен е проблем, проявяващ се при използване на идентични стойности в заглавките „Host“ и „:authority“ при използване на HTTP/2.
- Настроена е компилацията в NetBSD 10.0.
Отделно, компанията F5 представи предварителна версия на модула ngx_http_acme, предоставящ възможности за автоматизация на искането, получаването и обновяването на сертификати с помощта на протокола ACMEv2 (Automatic Certificate Management Environment), използван от удостоверяващия център Let’s Encrypt. При използване на http_acme администраторите не трябва да се грижат за обновяването на сертификати, на базата на параметри в конфигурацията модулът сам ще получи необходимите сертификати от Let’s Encrypt или друга услуга, поддържаща протокола ACME. Кодът на модула е написан на езика Rust, използвайки SDK NGINX-Rust. acme_issuer letsencrypt { uri https://acme-v02.api.letsencrypt.org/directory; state_path /var/cache/nginx/acme-letsencrypt; accept_terms_of_service; } server { listen 80; # ACME HTTP-01 challenge location / { return 404; } } server { listen 443 ssl; server_name .example.com; acme_certificate letsencrypt; ssl_certificate $acme_certificate; ssl_certificate_key $acme_certificate_key; ssl_certificate_cache max=2; }
Източник: opennet.ru
