Выпуск nginx 1.31.5 и njs 1.0.1
Опубликован выпуск основной ветки nginx 1.31.5, в которой продолжается развитие новых возможностей. В параллельно поддерживаемую стабильную ветку 1.30.x вносятся только изменения, связанные с устранением серьёзных ошибок и уязвимостей. В дальнейшем на базе основной ветки 1.31.x будет сформирована стабильная ветка 1.32. Код проекта написан на языке Си и распространяется под лицензией BSD.
В новом выпуске:
Добавлен Rest API для внешнего управления, позволяющий удалённо перезагружать конфигурацию, получать данные о настройках и просматривать статус рабочих процессов. Для включения поддержки API предусмотрена сборочная опция »--with-control-api» и аргумент командой строки »-l». Рекомендуется привязывать API к unix-сокету (nginx -l unix:/path/to/sock). Для обращения к API можно использовать утилиту Curl.
- Добавлена возможность использования переменной, начинающейся с символа »$», в качестве значения директивы Location. Значение переменной, вычисленное в момент выполнения, определяет условия входа в блок Location. Подобные Location могут использоваться внутри других блоков Location или сами содержать вложенные Location.
map $arg_foo $pred { bar 1; qux 1; } location $pred { root html; } Реализован модуль ngx_http_json_module, предоставляющий возможности для разбора данных в формате JSON, извлечения отдельных полей из JSON и использования этих полей в качестве переменных в конфигурации nginx.
Добавлена директива «client_body_early_read», включение которой приводит к чтению тела запроса сразу после получения заголовков.
Одновременно доступен выпуск njs 1.0.1, модуля для интеграции интерпретатора языка JavaScript в http-сервер nginx. Njs позволяет использовать сценарии JavaScript в файлах конфигурации для расширения возможностей nginx. Скрипты могут использоваться для определения расширенной логики обработки запросов, формирования конфигурации, динамической генерации ответов, модификации запроса/ответа или быстрого создания заглушек с решением проблем в web-приложениях. Код проекта написан на Си и распространяется под лицензией BSD.
В выпуске njs 1.0.1 устранены три уязвимости: переполнение буфера в функции xml.exclusiveC14n (CVE-2026–78689), обход ограничения доступа через js_access (CVE-2026–18329) и вызов аварийного завершения рабочего процесса через манипуляции с ngx.fetch (CVE-2026–78222).
Источник: http://www.opennet.ru/opennews/art.shtml? num=66201
© OpenNet
