Обновления 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.
Источник: http://www.opennet.ru/opennews/art.shtml? num=62679
© OpenNet