Nová zraniteľnosť v rewrite-module nginx

Čoskoro po objavení 18-ročného potenciálneho RCE bolo objavené ďalšie, CVE-2026-9256, tentokrát existujúce ešte dlhšie – 21 rokov, počnúc verziou 0.1.17, vydanou začiatkom roka 2005.
Na zneužitie zraniteľnosti je potrebné mať v konfigurácii servera direktívu rewrite, ktorá:

  • má v prvom argumente prekrývajúce sa pomenované parametre regulárneho výrazu,
  • v druhom používa dva alebo viac z nich, ale nepoužívajú sa premenné,
  • pričom buď je uvedený typ „redirect“, alebo sú parametre v druhom argumente pred otáznikom.

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

Oba dostanú pretečenie buffera pri spracovaní požiadavky „/++++++++++++++++++++++++++++++“.

Rovnako ako v predchádzajúcej zraniteľnosti, v tomto prípade môže vypočítaná dĺžka buffera nezodpovedať skutočnému počtu zapísaných doň údajov – pri výpočte dĺžky sa všade nezohľadnilo možné escapovanie.

Vyššie uvedené môže viesť ku kolapsu pracovného procesu nginx, a pri absencii ALSR – k RCE. Ako poľahčujúcu okolnosť možno uviesť ešte menšiu pravdepodobnosť stretnúť zraniteľné konštrukcie v konfigurácii než minule.

Chyba bola opravená vo verziách 1.30.2 a 1.31.1 (komit opravy).

Zdroj: linux.org.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster