freenginx və nginx-də məlumatları yazmadan əvvəl mətn dəyişəninin ölçüsünü yoxlama əlavə edilib (+ CVE).


3

Qısa: 2026-cı ildə aşkarlanmış üçüncü tampon aşımı (və F5-ə görə ASLR yoxdursa RCE) ilə üzləşdikdən sonra, freenginx-in inkişafçısı Maksim Dunin bunun dayandırılma vaxtı gəldiyini düşündü və məhsuluna dəyişən yazılmadan əvvəl ondan dəyişənin ölçüsünü yoxlamağı əlavə etdi. Bu yenilik oradan nginx-ə götürüldü ki, ümid verir ki, bu mövzuda yeni CVE-lərin yaranması dayandırılacaq.

İndi detallara keçək.

19 iyun tarixində komit freenginx-də dəyişən üçün tamponun sonunu göstərəcək end sahəsini əlavə edir. Əvvəl orada yalnız onun başlanğıcını (pos) göstərən bir göstərici var idi, lazım olan uzunluq əvvəldən hesablanırdı (və hələ də hesablanır), və dəyişənə məlumatın kopyalanması zamanı əvvəlcədən düzgün hesablanmış uzunluğun məlumatın tamponda yerləşəcəyini təmin edəcəyi gözlənilirdi. Təəssüf ki, 2026-cı ilin may ayında iki dəfə müxtəlif nəzərə almamaların səbəbi ilə bu belə olmamışdır (1 (linux.org.ru), 2 (linux.org.ru)), bu isə tampon aşmalarına və pis nəticələrə səbəb olurdur. Artıq, dəyişən üçün tampon yaradıldıqda, onun sonuna olan göstərici də doldurulur, məlumatı dəyişənə yazmazdan əvvəl, əgər məlumat ona sığmırsa, sorğunun emalı idarə olunan şəkildə səhvlə başa çatdırılacaq. Yəni uzunluq hesablaması ilə bağlı səhvlər hələ də mövcud ola bilər, lakin indi onlar yaddaşda heç bir zərər verməyəcək, yalnız konkret http sorğusunu uğursuzlaşdıracaq. Sonrakı komitlər (2 (freenginx.org), 3 (freenginx.org)) kodun digər yerlərində bənzər bir təhlükəsizlik tədbiri əlavə edildi, daxil olmaqla giriş jurnalının aparılması koduna. 7 iyulda freenginx 1.31.3, bu düzəlişi əhatə edən versiya buraxılmışdır.

15 iyulda bu komitlər nginx tərəfindən ələ keçirildi (1 (github.com), 2 (github.com), 3 (github.com), səbəbsiz dəyişdirərək ikinci və üçüncü yeri dəyişdirdi), problemə CVE-2026-42533, F5 isə rəsmi SA (f5.com).

Bu dəfə konkret zəifliklə bağlı: o, map direktivinin özəlləşdirilmiş parametrləri ilə regexp-lərdən istifadə edilməsi zamanı meydana gəlir. Onun meydana gəlməsi üçün lazım olan digər şərtlərlə bağlı komitdəki mətnlə SA-da olan mətn arasında bir qədər fərq var: SA-da göstərilib ki, gələcəkdə map-dan qalan özəlləşdirilmiş parametr istifadə edilərək bir sətirin hesablanması lazım olacaq, əvvəllər bu map-ın nəticəsindən əvvəl. Komit izahında, bu addımlar arasında özəlləşdirilmiş parametr olan dəyişənin sıfırlanması da iştirak edir. Hər necə olursa olsun, əksər işləklikdə olan nginx-lərdə belə bir şeyin baş verməsi güman etmir, buna görə də zəiflik geniş şəkildə cazibədar olmayıb. Həmçinin qeyd etmək lazımdır ki, bu konkret vəziyyətdə uzunluq hesablaması ilə bağlı düzəlişlər də görünmür (ya da mən yaxşı axtarmadım?), yalnız problemi idarə olunan http sorğusunun uğursuzluğuna çevirmək üçün mühafizə var. Ancaq 19 iyulda freenginx-də müəyyən düzəlişlər əlavə edilmişdir (5bfb, 7622, b906Sıxlıqla belə bir vəziyyət üçün uzunluğu hesablama çətindir, ancaq dəqiq demək olmur.

Zəiflik nginx 0.9.6 versiyasında meydana çıxıb, düzəlişlər isə freenginx 1.31.3, nginx 1.30.4, nginx 1.31.3 versiyalarına daxil edilib.

SA nginx-də bir qrup insanın zəiflik barədə müstəqil məlumatlarına və "koordinasiya olunmuş məlumat açıqlama standartlarına" riayət etmələri üçün təşəkkürlər göstərilib:

F5 Ming Xuan, DKD (@pidifn), Ji’an Zhou, və AntAISecurityLab-dan Zhen Yan, EVO.company-dan Rafael Gacek, Sergii Negodiuk, Calif.io-dan Lam Jun Rong, Winfunc Research-dan Mufeed VH (winfunc.com), Vexera AI (https://vexera.ai), Tu Tran Dinh (@1w4y), Stan Shaw (cyberstan), qianshuidewajueji, zenneth (randomguy6407), depthfirst-dan Zhenpeng (Leo) Lin, Lukas Johannes Moeller, Vodafone Türkiye-dan Melih Tolga Sahin, Ayoub Nabil Boubagrat (GitHub: @ayoubnabil), və Milan Jovic (Kljunowsky) bu problemi müstəqil şəkildə diqqətimizə çatdırdığı və koordinasiya olunmuş açıqlama standartlarına riayət etdiyi üçün təşəkkür edir.

Freenginx-də düzəlişlərlə bağlı ətraflı məlumat, faktiki olaraq, kommit zamanı verilən bir mesajla ilə məhdudlaşır. T 🥇Python 3.13 | ProHoster-də bu düzəliş heç "təhlükəsizlik" (security) imzası ilə, nə də "düzəliş" (bugfix) imzası ilə işarə olunmur, sadəcə "əlavə" (feature) yazılıb. Görünür, müəllif bu problemi kritik hesab etməyib. F5-dən müəyyən edilmiş şəxslərin problem barədə verdiyi məlumatlarla freenginx-dən alınmış kommit arasında əlaqə var mı, məhz bu problem haqqında freenginx müəllifinə məlumat verilibmi, bunu öyrənmək mümkün olmadı.

Mənbə: linux.org.ru

DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər 🔥 DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər | ProHoster