Poco dopo la scoperta di 18 anni un potenziale RCE è stata scoperta un'altra vulnerabilità, CVE-2026-9256, questa volta esistita anche più a lungo — 21 anni, a partire dalla versione 0.1.17, rilasciata all'inizio del 2005.
Per sfruttare la vulnerabilità è necessaria la presenza nella configurazione del server della direttiva rewrite, che ha:
- parametri di espressione regolare sovrapposti nel primo argomento,
- nel secondo è utilizzato due o più di essi, ma non sono usate variabili,
- inoltre è specificato il tipo 'redirect' o i parametri nel secondo argomento si trovano dopo il punto interrogativo.
Esempi:
rewrite ^/((.*))$ http://127.0.0.1:8080/$1$2 redirect;
rewrite ^/((.*))$ http://127.0.0.1:8080/?$1$2;
Entrambi otterranno un overflow del buffer quando elaborano la richiesta '/++++++++++++++++++++++++++++++'.
Come nella vulnerabilità precedente, in questo caso la lunghezza stimata del buffer potrebbe non coincidere con la reale quantità di dati scritti in esso — nel calcolo della lunghezza non è stato sempre considerato il possibile escaping.
Le informazioni sopra possono portare a un crash del flusso di lavoro di nginx, e in assenza di ALSR, a RCE. Come attenuante, si può notare una minore probabilità di trovare costrutti vulnerabili nella configurazione rispetto all'ultima volta.
L'errore è stato corretto nelle versioni 1.30.2 e 1.31.1 (commit della correzione).
Fonte: linux.org.ru
