nginx 重寫模組中存在新漏洞

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

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

Примеры:
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 (коммит исправления).

來源: linux.org.ru

為具有 DDoS 保護、VPS VDS 服務器的站點購買可靠的主機 🔥 購買具備 DDoS 防護的可靠網站寄存服務,包括 VPS 和 VDS 伺服器 | ProHoster