Актуализации на nginx 1.26.3 и 1.27.4, свързани с уязвимостта по отношение на TLS

Издаден е основният релиз на nginx 1.27.4, в който продължава развитието на нови възможности, както и издаването на паралелно поддържаният стабилен релиз nginx 1.26.3, в който се внасят само изменения, свързани с отстраняването на сериозни грешки и уязвимости. В актуализациите е отстранена уязвимост (CVE-2025-23419), позволяваща заобикаляне на проверката на клиентските TLS сертификати.

Уязвимостта е причинена от липсата на достатъчни проверки при обработката на виртуални хостове, прикрепени към един IP адрес и порт, и избирани при достъп по HTTPS на базата на доменното име, посочено чрез TLS разширение SNI. В такива конфигурации атакуващият можеше да повторно използва TLS сеанса в контекста на друг виртуален хост, за да заобиколи автентикацията с клиентския TLS сертификат. Проблемът се проявява в конфигурации, подкрепящи възобновяване на TLS сеанси с „TLS session ticket“ или използващи кеширане на TLS сеанси в настройките сървър по подразбиране, в които се използва автентикация с клиентски TLS сертификати. Уязвимостта съществува от релиза на nginx 1.11.4 при компилация с OpenSSL и активиране на протокола TLSv1.3.

Промени, несвързани с безопасността:

  • Добавени са възможности за намаляване на потреблението на ресурси и натоварването на CPU при използване на TLS в конфигурации с голямо количество server и location блокове. Добавените промени позволяват вместо създаването на отделен SSL контекст (SSL_CTX в OpenSSL) за всеки блок конфигурация, да се използва вече съществуващият SSL контекст от родителския блок.
  • Решени са проблеми с дълго зареждане на конфигурационни файлове поради повторно разбиране на един и същ набор TLS-сертификати, ключове и списъци на удостоверяващи центрове. Ускорено е презареждането на конфигурацията чрез повторно използване на неизменени TLS обекти, като сертификати, ключове и CRL. За деактивиране на наследяването на обекти при обновяване на конфигурацията е добавена директива „ssl_object_cache_inheritable“.
  • Добавен кеш за сертификати и ключове, заредени с помощта на променливи в директиви (например, «ssl_certificate /etc/ssl/$ssl_server_name.crt»). За управление на кеша са добавени директиви «ssl_certificate_cache», «proxy_ssl_certificate_cache», «grpc_ssl_certificate_cache» и «uwsgi_ssl_certificate_cache». През посочените директиви може да се настрои максималният размер на кеша, времето на действие на записите и времето за почистване на ненужните записи. Например: «ssl_certificate_cache max=1000 inactive=20s valid=1m;».
  • Добавена е директива «keepalive_min_timeout», определяща таймаута, в който nginx няма да затваря keep-alive свързването с клиента.
  • Решен е проблемът с появата на съобщения в логовете «gzip filter failed to use preallocated memory» при компилиране с библиотеката zlib-ng.
  • Решен е проблемът със сборката на библиотеката libatomic, при използване на опцията за сборка «—with-libatomic=DIR»
  • Отстранена е грешка, която е водила до невъзможност за установяване на свързване по протокола QUIC при използване на 0-RTT.
  • Обеспечено е игнориране на заявките за договаряне на версии QUIC, получени от клиенти.
  • Решени са проблемите със сборката в Solaris 10 с модула ngx_http_v3_module.
  • Коригирани са грешките в реализацията на HTTP/3.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster