Обновление nginx 1.31.3 с устранением RCE-уязвимости

Сформирован выпуск основной ветки nginx 1.31.3, в рамках которой продолжается развитие новых возможностей, а также выпуск параллельно поддерживаемой стабильной ветки nginx 1.30.4, в которую вносятся только изменения, связанные с устранением серьёзных ошибок и уязвимостей. В обновлениях устранено 3 уязвимости:

  • CVE-2026-42533 — переполнение буфера, проявляющееся при использовании в директиве «map» проверок через регулярные выражения с подстановками при помощи неименованных (например, $1 и $2) или именованных переменных, при условии, что данные переменные упомянуты до переменной результата map или использована переменная, которая не кэшируется. Потенциально уязвимость может привести к удалённому выполнению кода на сервере через отправку специально оформленного HTTP-запроса. Проблеме присвоен критический уровень опасности (9.2 из 10).
  • CVE-2026-60005 — утечка неинициализированной памяти рабочего процесса при использовании модуля ngx_http_slice_module и указания в директиве slice регулярных выражений с подстановками при помощи неименованных переменных. Уязвимости присвоен уровень опасности 8.8 из 10.
  • CVE-2026-56434 — обращение к памяти после её освобождения в модуле
    ngx_http_ssi_module, возникающее при обработке специально оформленного ответа, возвращённого проксированным бэкендом. Уязвимость может привести к изменению содержимого памяти рабочего процесса. Проблеме присвоен уровень опасности 8.3 из 10.

Не связанные с уязвимостями изменения:

  • В модуле ngx_http_xslt_filter_module отключена загрузка переменных в XML-документе, значения которых загружаются из внешних источников. Добавлена директива «xml_external_entities» для управления загрузкой внешних компонентов, указанных в блоке DTD обрабатываемого XML-документа.
  • Добавлены директивы «proxy_socket_sndbuf», «proxy_socket_rcvbuf»,
    «fastcgi_socket_sndbuf», «fastcgi_socket_rcvbuf»,
    «grpc_socket_sndbuf», «grpc_socket_rcvbuf», «scgi_socket_sndbuf»,
    «scgi_socket_rcvbuf», «uwsgi_socket_sndbuf», «uwsgi_socket_rcvbuf»,
    «tunnel_socket_sndbuf» и «tunnel_socket_rcvbuf» для выставления размера буферов отправки (SO_SNDBUF) и приёма (SO_RCVBUF).

  • Для архитектуры LoongArch64 реализовано определение размера блока (cache line), используемого для передачи данных между кэшем CPU и памятью.
  • В модулях ngx_http_proxy_v2_module и ngx_http_grpc_module реализовано ограничение размера заголовков и трейлеров в ответах HTTP/2 при помощи директив proxy_buffer_size и grpc_buffer_size.

Источник: http://www.opennet.ru/opennews/art.shtml?num=65910