Č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
