Varsti pärast avastamist 18-aastase potentsiaalse RCE kõrval avastati veel üks, CVE-2026-9256, mis kestis seekord veelgi kauem — 21 aastat, alates versioonist 0.1.17, mis ilmus 2005. aasta alguses.
Haavatavuse ärakasutamiseks on vajalik, et serveri konfiguraatsioonis oleks rewrite-direktiiv, millel:
- esimeses argumendis on kattuvad regulaarsed väljendid,
- teisest kasutatakse kahte või enamat neist, kuid muutujat ei tohi kasutada,
- samuti peab olema määratud kas tüüp „redirect“ või peavad teises argumendis olevad parameetrid olema küsimärgistatud.
Näited:
rewrite ^/((.*))$ http://127.0.0.1:8080/$1$2 redirect;
rewrite ^/((.*))$ http://127.0.0.1:8080/?$1$2;
Mõlemad saavad puhverülevoolu, kui käsitletakse päringut „/++++++++++++++++++++++++++++++“.
Nagu ka eelmisel haavatavusel, ei pruugi seekord arvutatud puhvri pikkus kattuda tegeliku kirjutatud andmete kogusega — pikkuse arvutamisel ei arvestatud igal pool võimaliku joonekattega.
Ülaltoodud võib põhjustada nginx-i töövoo külmumist, ja ilma ALSR-ta võib see viia RCE-ni. Leevendava asjaoluna võib märkida, et haavatavaid konstruktsioone configis on veelgi väiksema tõenäosusega kui eelmisel korral.
Viga on parandatud versioonides 1.30.2 ja 1.31.1 (paranduse commit).
Allikas: linux.org.ru
