Сформирован выпуск основной ветки nginx 1.23.2, в рамках которой продолжается развитие новых возможностей, а также выпуск параллельно поддерживаемой стабильной ветки nginx 1.22.1, в которую вносятся только изменения, связанные с устранением серьёзных ошибок и уязвимостей.
В новых версиях устранены две уязвимости (CVE-2022-41741, CVE-2022-41742) в модуле ngx_http_mp4_module, применяемом для организации потокового вещания из файлов в формате H.264/AAC. Уязвимости могут привести к повреждению памяти или утечке содержимого памяти при обработке специально оформленного файла в формате mp4. В качестве последствий упоминается аварийное завершение рабочего процесса, но не исключаются и иные проявления, такие как организация выполнения кода на сервере.
Примечательно, что похожая уязвимость уже устранялась в модуле ngx_http_mp4_module в 2012 году. Кроме того, компания F5 сообщила о похожей уязвимости (CVE-2022-41743) в продукте NGINX Plus, затрагивающей модуль ngx_http_hls_module, обеспечивающий поддержку протокола HLS (Apple HTTP Live Streaming).
Кроме устранения уязвимостей в nginx 1.23.2 предложены следующие изменения:
- Добавлена поддержка переменных “$proxy_protocol_tlv_*“, в которые записываются значения полей TLV (Type-Length-Value), фигурирующих в протоколе Type-Length-Value PROXY v2.
- Обеспечена автоматическая ротация ключей шифрования для сессионных тикетов TLS, применяемая при использовании разделяемой памяти в директиве ssl_session_cache.
- Уровень ведения лога для ошибок, связанных с некорректным типом записей SSL, понижен с критического до информационного уровня.
- Уровень ведения лога для сообщений о невозможности выделить память для нового сеанса изменён с alert на warn и ограничен выводом одной записи в секунду.
- На платформе Windows налажена сборка с OpenSSL 3.0.
- Налажено отражение в логе ошибок протокола PROXY.
- Устранена проблема, из-за которой при использовании TLSv1.3 на базе OpenSSL или BoringSSL не работал таймаут, указанный в директиве “ssl_session_timeout”.