Nginx 1.31.0 жаңартуы HTTP сұрауы арқылы пайдаланылған RCE осалдықтарын түзетеді

Негізгі nginx 1.31.0 тармағы шығарылды, жаңа мүмкіндіктерді әзірлеу жалғасуда. Параллель тұрақты тармақ, nginx 1.30.1, да шығарылды, онда тек күрделі қателер мен осалдықтарды түзетуге қатысты өзгерістер бар. Бұл жаңартулар алты осалдықты түзетеді, олардың ең күрделісі арнайы жасалған HTTP сұрауы арқылы кодты қашықтан орындауға мүмкіндік береді. Жазу кезінде angie және freenginx үшін ешқандай түзетулер жарияланған жоқ.

Осалдық (CVE-2026-42945) сыни деп бағаланған, ngx_http_rewrite_module модуліндегі буфердің толып кетуінен туындаған. Мұны арнайы жасалған URI арқылы HTTP сұрауын жіберу арқылы nginx жұмысшы процесінің артықшылықтарымен кодты орындау үшін пайдалануға болады. Мәселе "rewrite" директивасы бар конфигурацияларда көрінеді, онда тұрақты өрнектер атаусыз айнымалылармен (мысалы, $1 және $2) маска алмастыруларын пайдаланады, егер ауыстыру жолында "?" таңбасы болса. Осалды құрылымның мысалы: ^/users/([0-9]+)/profile/(.*)$ /profile.php?id=$1&tab=$2 last;

Аталған алмастырулары бар өрнектер осал емес. Мысалы, осалдық келесі конструкцияларға әсер етпейді: rewrite ^/users/(? [0-9]+)/профиль/(? .*)$ /profile.php?id=$user_id&tab=$section last;

Осалдық 2008 жылдың наурыз айында шыққан 0.6.27 нұсқасынан бері бар. Осалдыққа буфердің бөлінуі себеп болды, ол жіберілмеген деректер жазылады деп күтілді, бірақ деректер арнайы таңбалардан қашып кеткеннен кейін көшірілді. Арнайы таңбалардың өлшемі үлкенірек болды, себебі әрбір "+", "%" және "&" таңбасы бір байттың орнына үш байтпен кодталды. Бұл сәйкессіздік қайта жазу ережесінде "?" таңбасы болған кезде, "e->is_args" жалаушасы орнатылды, бұл қашып кетуге мүмкіндік берді, бірақ буфер жалауша тазартылып бөлінді, бұл қашып кетуге жол бермеді.

Басқа осалдықтар:

  • CVE-2026-42926 — Параметрлерде "proxy_set_body" директивасын пайдаланған кезде және HTTP/2 (proxy_http_version=2) арқылы серверге кірген кезде шабуылдаушы деректерін прокси арқылы сұрауға ауыстыруға болады.
  • CVE-2026-40701 - «ssl_ocsp» директивасы бар конфигурацияларда DNS серверінен жауаптарды өңдеу кезінде ngx_http_ssl_module модулінде тегін пайдаланудан кейінгі осалдық бар.
  • CVE-2026-42946 – ngx_http_uwsgi_module және ngx_http_scgi_module модульдерінде арнайы жасалған жауапты өңдеу кезінде шектен тыс оқу осалдығы пайда болады. Бұл осалдық жұмыс процесінің жадының ағып кетуіне немесе істен шығуына әкелуі мүмкін.
  • CVE-2026-42934 – "charset_map" директивасын пайдалану кезінде UTF-8 декодталған жауаптарын өңдеу кезінде жұмыс процесінде шектен тыс оқу осалдығы пайда болады. Бұл осалдық жадтың ағып кетуіне немесе жұмыс процесінің істен шығуына әкелуі мүмкін.
  • CVE-2026-40460 - HTTP/3 хаттамасын енгізудегі осалдық, ол IP мекенжайын бұрмалау арқылы авторизацияны немесе шектеулерді айналып өтуге мүмкіндік береді.

Nginx 1.31.0 нұсқасында жақсартулар қосылды:

  • Клиент HTTP/1.1 CONNECT әдісіне кірген кезде сұраныстарды басқа серверге қайта бағыттайтын, прокси функциясын бағыттауға мүмкіндік беретін ngx_http_tunnel_module модулі қосылған. Прокси аутентификациясын "auth_basic", "satisfy" және "auth_delay" директиваларын пайдаланып конфигурациялауға болады.
  • «Жоғары ағын» блогына «ең аз уақыт» директивасы қосылды, бұл сұраныстарды ең қысқа орташа жауап уақытымен және ең аз белсенді қосылымдармен серверге жіберетін жүктемені теңестіру әдісін іске қосады.
  • Прокси серверіне қосылған кезде ALPN кеңейтімінде рұқсат етілген хаттамалар тізімін көрсету үшін "stream_proxy" модуліне "proxy_ssl_alpn" директивасы қосылды. Мысалы: "proxy_ssl_alpn h2 http/1.1".
  • HTTP/2 және HTTP/3 хаттамалары арқылы «Қосылу», «Прокси-Қосылу», «Кееп тұру», «Трансфер-кодтау» және «Жаңарту» тақырыптарын қамтитын сұраулар қабылданбайды.
  • ngx_http_dav_module модулі қайталанатын бастапқы және мақсатты ресурстары немесе кірістірілген жинақтары бар COPY және MOVE сұрауларының қабылданбауын қамтамасыз етеді.
  • SSL қателерінің «жарамсыз ескерту», ​​«жазба қабатының істен шығуы» және «SSL ескерту нөмірі N» журналға жазу деңгейі «crit» деңгейінен «info» деңгейіне дейін төмендетілді.
  • http_upstream_sticky_module модулін құруды өшіру үшін конфигурация скриптіне "--without-http_upstream_sticky_module" параметрі қосылды («--without-http_upstream_sticky» параметрі ескірген).

Жаңарту: ngx_http_rewrite_module ішіндегі RCE осалдығына арналған эксплойт қолжетімді.

Ақпарат көзі: opennet.ru

DDoS қорғауы бар сайттар үшін сенімді хостинг, VPS VDS серверлерін сатып алыңыз 🔥 DDoS қорғанысы, VPS VDS серверлері бар сенімді веб-сайт хостингін сатып алыңыз | ProHoster