Профиль: Аноним (вход | регистрация) неRU opennet.me  
The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск nginx 1.31.5 и njs 1.0.1

02.09.2026 23:01 (MSK)

Опубликован выпуск основной ветки 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).

  1. Главная ссылка к новости (https://github.com/nginx/nginx...)
  2. OpenNews: Выпуск nginx 1.31.4
  3. OpenNews: Выпуск Angie 1.12.0, форка Nginx
  4. OpenNews: Обновление nginx 1.31.3 с устранением RCE-уязвимости
  5. OpenNews: Проект nginx опубликовал JavaScript-модуль njs 1.0.0
  6. OpenNews: В nginx выявлена вторая за 10 дней удалённо эксплуатируемая уязвимость
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/66201-nginx
Ключевые слова: nginx
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (15) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, User (??), 07:44, 03/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Ну, как будто бы со всех сторон опоздали уже. API'шка вот вроде бы появилась - но управлять конфигурацией с её помощью нельзя. Сама конфигурация так и осталась не шибко programmers-friendly, ни поменять удобно ни провалидировать нормально.
    njs прям по ссылке в новости - официальный труп. В общем, спасибо конечно - но задач раздачи-статики-вагонами у меня (уже) нет.
     
     
  • 2.2, Аноним (2), 08:12, 03/09/2026 [^] [^^] [^^^] [ответить]  
  • +6 +/
    пытался я тут настроить caddy, в типовой конфигурация все действительно красиво, но как только понадобилось сделать шаг в сторону, она просто не умеет.
     
     
  • 3.5, User (??), 08:28, 03/09/2026 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Так никто ж не спорит. Правда по сравнению с индейцем и nginx-то не ахти мастак, да? Только эти "шаги-в-сторону" нужны сиииильно не всем и не всегда.
     
     
  • 4.10, Аноним (2), 12:58, 03/09/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    апач уже лет 20 не трогал и не вспоминал, и слава богу
     
  • 3.11, Аноним (-), 18:54, 04/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >  пытался я тут настроить caddy, в типовой конфигурация все действительно красиво,
    > но как только понадобилось сделать шаг в сторону, она просто не умеет.

    А под app layer DDoS он еще проца жрет феерически - и вроде б не умеет в кеширование чтоб бэкэнд от ботов разгрузить.

     
     
  • 4.14, User (??), 14:20, 06/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, как будто бы это немножко так, самую малость, капельку - не его дело "с ботами бороться", не?
     
  • 2.4, нах. (?), 08:26, 03/09/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    ну вроде статика с моего диска - никуда не девалась.
    А зачем без конца менять конфигурацию (ценой как обычно невозможности проверить, какая она была вот на тот момент времени и чем отличается сейчас) - понятия не имею.

    Сама конфигурация - с отсутствием нормальной иерархии и возможности изменять значения параметров (аж для целых двух накостылен обходной путь) - ужасна, но отражает глубокий внутренний мир, изменить ничего там нельзя не затронув само ядро, а это уже будет не nginx.

    Впрочем, убогий acme модуль на безопастном йезычке радости тоже не добавляет.

    Пользуйтесь apache если вам нужно что-то кроме статики, чо.

     
     
  • 3.6, User (??), 08:51, 03/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > ну вроде статика с моего диска - никуда не девалась.

    Не, ну я тоже контейнеры с фронтендом пересобирать не бегу

    > А зачем без конца менять конфигурацию (ценой как обычно невозможности проверить, какая она была вот на тот момент времени и чем отличается сейчас) - понятия не имею.

    Ну, даже если не говорить о каких-нибудь ингрессах - у меня вот на dev'е caddy-docker-proxy стоит. с добавлением label чудо-бэкендеры справляются, а вот идея править nginx.conf в отдельной репе у них восторга почему-то не вызывала. Опять же, acme из коробочки без костылей и приседаний - плохо что ли? Да хорошо.

    > Сама конфигурация - с отсутствием нормальной иерархии и возможности изменять значения параметров (аж для целых двух накостылен обходной путь) - ужасна, но отражает глубокий внутренний мир, изменить ничего там нельзя не затронув само ядро, а это уже будет не nginx.

    Угу. Но вот кстати посмотри на haproxy - они configuration API, который преобразует нескучные json'ы во внутренний DSL я уж и не вспомню, сколько лет назад родили.

    > Пользуйтесь apache если вам нужно что-то кроме статики, чо.

    Да не, обычно envoy для всего хватает. Apache если и вижу - то в составе уже развернутых решений, которые работают настолько хорошо, что ни одному <censored> в голову не приходит вот взять - и УЛУЧШИТЬ!

     
  • 3.7, Аноним (7), 10:26, 03/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    а с реверсным проксированием на http/fastcgi что не так? зачем там конфигурацию менять по два раза в день?

    вообще nginx изначально делался как static + reverse proxy, и эти обе две задачи он решает хорошо изначально. а application server из него делать не надо.

    ну, в современных реалиях адекватный acme module нужен ещё

     
     
  • 4.8, User (??), 10:53, 03/09/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > а с реверсным проксированием на http/fastcgi что не так? зачем там конфигурацию менять по два раза в день?

    А когда resolve в upstream в OSS версии появилась? Год назад? Два? А до того вот, ручками-ручками все.

     
  • 4.9, нах. (?), 11:31, 03/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > а с реверсным проксированием на http/fastcgi что не так?

    да вроде немодно уже ж давно.

    ну и с этим-то апач тоже прекрасно справится.

     
     
  • 5.15, Аноним (15), 20:56, 08/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Почему же? А терминировать ssl и на ноду проксировать чем?

    Всякие там k8s и прочие ингресы мне для двух инстансов нафиг не сдались

     
     
  • 6.16, нах. (?), 00:59, 11/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Почему же? А терминировать ssl и на ноду проксировать чем?

    нода умеет в ssl без посторонней помощи.

    > Всякие там k8s и прочие ингресы мне для двух инстансов нафиг не
    > сдались

    ну, собственно, уот...

     
  • 3.12, Аноним (-), 18:56, 04/09/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А зачем без конца менять конфигурацию

    Чтобы применить новую конфиоурацию к проду на лету. Всему и сразу, без ресурсоемких операций.

    > (ценой как обычно невозможности проверить, какая она была вот на тот момент
    > времени и чем отличается сейчас) - понятия не имею.

    Ты хочешь чтобы и этим тоже - вебсервер чтоли занимался? А всякие там системы контроля версий и деплоя конфигов - не для тебя чтоли?

    В общем не переживай ты так - кому это реально надо в состоянии все проверить в лучшем виде и все правильные распасы - умеют.

     

  • 1.3, Аноним (3), 08:24, 03/09/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    В 2026 году им бы не фичи новые сомнительные придумывать и писать, а искать и латать дыры, которые мамкины хакеры с клодами наверняка уже нашли и мешками торгуют в даркнете
     
     
  • 2.13, Аноним (-), 18:59, 04/09/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > В 2026 году им бы не фичи новые сомнительные придумывать и писать,
    > а искать и латать дыры, которые мамкины хакеры с клодами наверняка уже
    > нашли и мешками торгуют в даркнете

    И конечно вы накинете пруфов и обоснований почему это все не голммый FUD? В целом в nginx не так уж много вулнов.

     
     
  • 3.17, нах. (?), 09:14, 11/09/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > И конечно вы накинете пруфов и обоснований почему это все не голммый
    > FUD? В целом в nginx не так уж много вулнов.

    в общем-то все кроме неприличной истории с раскрытием переменных подстановок - которую, внезапно, мамкины какиры вместе с тыщеглазом смогли найти только через 25 лет - уязвимости очень специфических конфигураций, которые хрен ты найдешь, тем более в голом виде, у кого-то кроме белок-истеричек.

    С переменными - ну типа exploitable... "Если!" (c)

    пруф представлял собой докер в докере в докере где единственноверный бинарник с заранее известными смещениями запускался с единственноверным конфигом (поди угадай где в чужом подстановка) в единственноверной позе.

    Т.е. единственная реальная возможность - если кто-то уже имеет доступ к твоему серверу. И зачем вот ему шелл от юзера www ?

     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить новость, Поддержать