Nieuwe kwetsbaarheid in de nginx rewrite-module

Вскоре после обнаружения 18 jaar oud потенциального RCE было обнаружено ещё одно, CVE-2026-9256, на этот раз просуществовавшее ещё дольше — 21 год, начиная с версии 0.1.17, выпущенной в начале 2005 года.
Для эксплуатации уязвимости требуется наличие в конфиге сервера директивы rewrite, у которой:

  • в первом аргументе имеются перекрывающиеся выделяемые параметры регулярного выражения,
  • во втором используется два или больше из них, но не используются переменные,
  • при этом либо указан тип «redirect», либо параметры во втором аргументе находятся после знака вопроса.

Voorbeelden:
rewrite ^/((.*))$ http://127.0.0.1:8080/$1$2 redirect;
rewrite ^/((.*))$ http://127.0.0.1:8080/?$1$2;

Оба они получат переполнение буфера при обработке запроса «/++++++++++++++++++++++++++++++».

Как и в предыдущей уязвимости, в этом случае расчётная длина буфера может не совпадать с реальным количеством записанных в него данных — при расчёте длины не везде учитывалось возможное экранирование.

Вышеописанное может приводить к крашу рабочего процесса nginx, а при отсутствии ALSR — к RCE. В качестве смягчающего обстоятельства можно отметить ещё меньшую вероятность встретить уязвимые конструкции в конфиге, чем в прошлый раз.

Ошибка исправлена в версиях 1.30.2 и 1.31.1 (коммит исправления).

Bron: linux.org.ru

Koop betrouwbare hosting voor sites met DDoS-bescherming, VPS VDS-servers 🔥 Koop betrouwbare websitehosting met DDoS-bescherming, VPS- en VDS-servers | ProHoster