Asosiy nginx 1.31.0 filiali chiqarildi va yangi funksiyalarni ishlab chiqishda davom etmoqda. Parallel barqaror filial, nginx 1.30.1, ham chiqarildi, unda faqat jiddiy xatolar va zaifliklarni tuzatish bilan bog'liq o'zgarishlar mavjud. Ushbu yangilanishlar oltita zaiflikni tuzatadi, ulardan eng jiddiylari maxsus yaratilgan HTTP so'rovi orqali kodni masofadan bajarish imkonini beradi. Yozish paytida angie va freenginx uchun hech qanday tuzatishlar e'lon qilinmagan.
Zaiflik (CVE-2026-42945), kritik deb baholangan, ngx_http_rewrite_module modulidagi buferning toshib ketishi natijasida yuzaga keladi. Bundan maxsus yaratilgan URI bilan HTTP so'rovini yuborish orqali nginx ishchi jarayonining imtiyozlari bilan kodni bajarish uchun foydalanish mumkin. Muammo "rewrite" direktivasi bilan konfiguratsiyalarda namoyon bo'ladi, bunda muntazam ifodalar nomlanmagan o'zgaruvchilar (masalan, $1 va $2) bilan niqob almashtirishlaridan foydalanadi, agar almashtirish satrida "?" belgisi bo'lsa. Zaif konstruktsiyaga misol: rewrite ^/users/([0-9]+)/profile/(.*)$ /profile.php?id=$1&tab=$2 last;
Nomlangan almashtirishlarga ega ifodalar zaif emas. Masalan, zaiflik quyidagi konstruksiyalarga ta'sir qilmaydi: rewrite ^/users/(? [0-9]+)/profil/(? .*)$ /profile.php?id=$user_id&tab=$bo'lim oxirgi;
Ushbu zaiflik 2008-yil mart oyida chiqarilgan 0.6.27 versiyasidan beri mavjud. Zaiflik buferning ajratilishi natijasida yuzaga kelgan, unga qochib ketilmagan ma'lumotlar yoziladi deb taxmin qilingan, ammo ma'lumotlar aslida maxsus belgilar qochib ketgandan keyin nusxalangan. Maxsus belgilar hajmi kattaroq edi, chunki har bir "+", "%" va "&" belgilari bitta bayt o'rniga uchta baytda kodlangan. Bu nomuvofiqlik, qayta yozish qoidasida "?" belgisi mavjud bo'lganda, "e->is_args" bayrog'i o'rnatilganligi sababli yuzaga keldi, bu esa qochib ketishga imkon berdi, ammo bufer bayroq tozalangan holda ajratildi, bu esa qochib ketishning oldini oldi.
Boshqa zaifliklar:
- CVE-2026-42926 — Sozlamalarda "proxy_set_body" direktivasidan foydalanganda va HTTP/2 (proxy_http_version=2) orqali orqa tomonga kirishda tajovuzkor ma'lumotlarini proksi-so'rovga almashtirish mumkin.
- CVE-2026-40701 - "ssl_ocsp" direktivasi bilan konfiguratsiyalarda DNS serveridan javoblarni qayta ishlashda ngx_http_ssl_module modulida foydalanishdan keyin bepul zaiflik mavjud.
- CVE-2026-42946 – ngx_http_uwsgi_module va ngx_http_scgi_module modullarida maxsus tayyorlangan javobni qayta ishlash paytida chegaradan tashqari o'qish zaifligi yuzaga keladi. Bu zaiflik ishchi jarayoni xotirasining oqishiga yoki ishdan chiqishiga olib kelishi mumkin.
- CVE-2026-42934 – "charset_map" direktivasidan foydalanilganda UTF-8 dekodlangan javoblarini qayta ishlashda ishchi jarayonida chegaradan tashqari o'qish zaifligi yuzaga keladi. Bu zaiflik xotira oqishiga yoki ishchi jarayonining ishdan chiqishiga olib kelishi mumkin.
- CVE-2026-40460 - bu HTTP/3 protokolini amalga oshirishdagi zaiflik bo'lib, u IP-manzilni soxtalashtirish orqali avtorizatsiya yoki cheklovlarni chetlab o'tishga imkon beradi.
Nginx 1.31.0 versiyasiga qo'shilgan yaxshilanishlar:
- ngx_http_tunnel_module moduli kiritilgan bo'lib, u proksi-server funksiyasini yo'naltirishni ta'minlaydi, mijoz HTTP/1.1 CONNECT usuliga kirganda so'rovlarni boshqa serverga yo'naltiradi. Proksi-server autentifikatsiyasini "auth_basic", "satisfy" va "auth_delay" direktivalari yordamida sozlash mumkin.
- "Least_time" direktivasi "upstream" blokiga qo'shildi, bu esa so'rovlarni eng qisqa o'rtacha javob vaqti va eng kam faol ulanishlar bilan serverga yo'naltiradigan yukni muvozanatlash usulini yoqadi.
- Proksi serverga ulanishda ALPN kengaytmasida ruxsat etilgan protokollar ro'yxatini ko'rsatish uchun "stream_proxy" moduliga "proxy_ssl_alpn" direktivasi qo'shildi. Masalan: "proxy_ssl_alpn h2 http/1.1".
- "Ulanish", "Proxy-Connection", "Keep-Alive", "Transfer-Encoding" va "Upgrade" sarlavhalarini o'z ichiga olgan HTTP/2 va HTTP/3 protokollari orqali so'rovlar rad etiladi.
- ngx_http_dav_module moduli takroriy manba va maqsadli resurslar yoki ichki to'plamlarga ega COPY va MOVE so'rovlarining rad etilishini ta'minlaydi.
- SSL xatolari uchun "noto'g'ri ogohlantirish", "yozuv qatlami ishlamay qolishi" va "SSL ogohlantirish raqami N" jurnalini yuritish darajasi "crit" dan "info" ga tushirildi.
- http_upstream_sticky_module modulini yaratishni o'chirib qo'yish uchun konfiguratsiya skriptiga "--without-http_upstream_sticky_module" parametri qo'shildi ("--without-http_upstream_sticky" parametri eskirgan).
Yangilanish: ngx_http_rewrite_module’dagi RCE zaifligi uchun eksploit mavjud.
Manba: opennet.ru
