VÀlja on antud nginx 1.31.0 pÔhiversioon, mille raames jÀtkub uute vÔimaluste arendamine ning samal ajal avaldatakse paralleelselt toetav stabiilne versioon nginx 1.30.1, kuhu kantakse ainult tÔsiste vigade ja haavatavuste kÔrvaldamisega seotud muudatused. Uuendustes on kÔrvaldatud 6 haavatavust, mille seas on kÔige ohtlikum, mis vÔimaldab kauget koodi tÀitmist, saates spetsiaalselt koostatud HTTP-pÀringu. Angie ja freenginx jaoks pole uudise kirjutamise ajal parandusi avaldatud.
Haavatavus (CVE-2026-42945), millele on mÀÀratud kriitiline ohtlikkuse tase, on pĂ”hjustatud mĂ€lupuhvri ĂŒlevoolust ngx_http_rewrite_module moodulis, mida saab Ă€ra kasutada koodi tĂ€itmiseks nginx tööprotsesside Ă”igustes, saates HTTP-pĂ€ringu spetsiaalselt koostatud URI-ga. Probleem ilmneb konfiguratsioonides, kus kasutaakse «rewrite» direktiivi, kus regulaarsetes vĂ€ljendes kasutatakse varjatud muutujaid (nt $1 ja $2), tingimusel et asendustekst sisaldab sĂŒmbolit «?». NĂ€ide haavatavast struktuurist: rewrite ^/users/([0-9]+)/profile/(.*)$ /profile.php?id=$1&tab=$2 last;
Nimeeritud asenduste vÀljendid ei ole haavatavad. NÀiteks ei mÔjuta haavatavus ehitisi: rewrite ^/users/(?[0-9]+)/profile/(?
Haavatavus on olemas alates versioonist 0.6.27, mis anti vĂ€lja 2008. aasta mĂ€rtsis. Haavatavuse pĂ”hjuseks oli see, et puhvers mĂ€lu eraldati eeldusel, et sinna kirjutatakse mitte-escapitud andmed, kuid tegelikult kopeeriti andmed, pĂ€rast spetsiaalsete mĂ€rkide escapesimist, mille suurus oli suurem, kuna iga mĂ€rk â+â, â%â ja â&â kodeeriti mitte ĂŒhe, vaid kolme baitiga. Selline ebakĂ”la tekkis seetĂ”ttu, et rida rewrite mĂ€rgi â?â juures seati lipp âe->is_argsâ, mille korral aktsepteeriti escapesimist, kuid puhvers mĂ€lu eraldamine toimus lĂŒlitatud lipu puhul, mille korral escapesimist ei rakendatud.
Teised haavatavused:
- CVE-2026-42926 â rĂŒndaja andmete asendamise vĂ”imalus vahepealses pĂ€ringus, kui kasutatakse seadet âproxy_set_bodyâ ja pöördutakse tagapool lĂ€bi HTTP/2 (proxy_http_version=2).
- CVE-2026-40701 â mĂ€lule pÀÀs pĂ€rast selle vabastamist (use-after-free) ngx_http_ssl_module moodulis, mis tekib vastuseid töödeldes DNS-serverilt konfiguratsioonides, kus on mÀÀratud direktiiv «ssl_ocsp».
- CVE-2026-42946 â lugemine mĂ€lust, mis jÀÀb puhvrist vĂ€ljapoole, ngx_http_uwsgi_module ja ngx_http_scgi_module moodulites, mis tekib spetsiaalselt valmistatud vastuse töötlemisel. Probleem vĂ”ib viia tööprotsessi mĂ€lu sisu leketeni vĂ”i selle kokkuvarisemiseni.
- CVE-2026-42934 â lugemine mĂ€lust, mis jÀÀb puhvrist vĂ€ljapoole, tööprotsessis, mis tekib UTF-8 dekodeerimisega vastuste töötlemisel direktiivi «charset_map» kasutamisel. Probleem vĂ”ib viia tööprotsessi mĂ€lu sisu leketeni vĂ”i selle kokkuvarisemiseni.
- CVE-2026-40460 â haavatavus HTTP/3 protokolli rakenduses, mis vĂ”imaldab petmist IP-aadressid autentimise vĂ”i piirangute ĂŒletamiseks.
Parendused, mis lisati nginx 1.31.0 vÀljaandesse:
- Komplekti kuulub ngx_http_tunnel_module moodul, mis vÔimaldab töötada pöördproksina, mis suunab pÀringud teisele serverile kliendi pöördumise ajal HTTP/1.1 CONNECT meetodi abil. Proksile juurdepÀÀsu autentimist saab seadistada, kasutades direktiive «auth_basic», «satisfy» ja «auth_delay».
- «upstream» plokki on lisatud direktiiv «least_time», mis aktiveerib laadimise tasakaalustamise meetodi, mis edastab pĂ€ringu serverile minimaalse keskmise vastusaja ja vĂ€himaktiivsete ĂŒhendustega.
- «stream_proxy» moodulisse on lisatud direktiiv «proxy_ssl_alpn», et mÀÀrata lubatud protokollide nimekiri ALPN laienduse korral proksitava serveriga ĂŒhenduse loomisel. NĂ€iteks: «proxy_ssl_alpn h2 http/1.1».
- Tagatud on pÀringute keeldumine protokollide HTTP/2 ja HTTP/3 puhul, mis sisaldavad pÀiseid «Connection», «Proxy-Connection», «Keep-Alive», «Transfer-Encoding», «Upgrade».
- ngx_http_dav_module moodulis on tagatud pĂ€ringute COPY ja MOVE keeldumine, kui esinevad korduvad lĂ€hte- ja sihtressursid vĂ”i pesaĂŒksused.
- Veateate logimise tase SSL «invalid alert», «record layer failure» ja «SSL alert number N» on alandatud «crit» tasemelt «info» tasemele.
- Konfigureerimise skripti on lisatud parameeter ââwithout-http_upstream_sticky_moduleâ, et keelata http_upstream_sticky_module mooduli kompileerimine (parameeter ââwithout-http_upstream_stickyâ on kuulutatud vananenuks).
TĂ€iendav teave: RCE-haavatavuse eksploitatsioon ngx_http_rewrite_module jaoks on saadaval.
Allikas: opennet.ru
