Freenginx na nginx sasa angalia ukubwa wa kigezo cha maandishi kabla ya kuandika data kwake (+ CVE)


3

TL; DRBaada ya kukutana na kufurika kwa tatu kwa bafa iliyogunduliwa mwaka wa 2026 (na, kulingana na F5, RCE ikiwa hakuna ASLR) wakati wa kufanya kazi na regexps na vigezo, msanidi programu wa freenginx Maxim Dunin aliamua kuwa ni wakati wa kuizuia na akaongeza ukaguzi wa ukubwa unaobadilika kwenye bidhaa yake kabla ya kuiandikia data. Nginx amenakili kipengele hiki tangu wakati huo, na kutoa matumaini kwamba CVE mpya zinazohusiana na suala hili zitaondolewa.

Sasa kwa maelezo zaidi.

Juni 19 ilitengenezwa kujitolea katika Freenginx, ambayo inaongeza sehemu ya mwisho kwenye kielezi cha kigezo, ikionyesha mwisho wa bafa. Hapo awali, kulikuwa na kiashiria tu cha mwanzo wake (pos), urefu unaohitajika ulikuwa (na bado unahesabiwa) mapema, na kufikia wakati data iliponakiliwa kwenye kigezo, ilidhaniwa kwamba urefu uliohesabiwa kwa usahihi ungehakikisha kwamba data ingefaa kwenye bafa. Kwa bahati mbaya, hii tayari imethibitika kuwa si sahihi mara mbili mnamo Mei 2026 kutokana na makosa mbalimbali.1 (linux.org.ru), 2 (linux.org.ru)), ambayo ilisababisha kufurika kwa bafa na matokeo mabaya. Sasa, bafa ya kigezo inapoundwa, kiashiria cha mwisho wake pia hujazwa, na kabla ya kuandika data kwa kigezo, ikiwa data haiendani, usindikaji wa ombi utaisha na hitilafu kwa njia iliyodhibitiwa. Hii ina maana kwamba makosa ya hesabu ya urefu bado yanaweza kuendelea, lakini hayatapoteza kumbukumbu; yatashindwa tu ombi maalum la HTTP. Yafuatayo yanafanya (2 (freenginx.org), 3 (freenginx.org)) ulinzi kama huo uliongezwa kwenye sehemu zingine za msimbo, ikiwa ni pamoja na msimbo wa kumbukumbu ya ufikiaji. Toleo lilichapishwa mnamo Julai 7 Freenginx 1.31.3, ambayo inajumuisha marekebisho haya.

Mnamo Julai 15, kazi hizi zilichukuliwa na nginx (1 (github.com), 2 (github.com), 3 (github.com), kwa sababu fulani kubadilishana ya pili na ya tatu kwenye mnyororo), tatizo liliwekwa CVE-2026-42533, na F5 ilitoa taarifa rasmi SA (f5.com).

Kuhusu udhaifu maalum wakati huu: unajidhihirisha wakati wa kutumia maelekezo ya ramani na regexps zenye vigezo vilivyotolewa. Kuhusu hali zingine zinazohitajika ili kuchochea, maandishi katika maelezo ya ahadi na maandishi katika SA hutofautiana kidogo: SA inasema kwamba kamba fulani lazima ihesabiwe baadaye, ambayo hutumia kigezo kilichotolewa kilichobaki kutoka kwenye ramani, kabla ya matokeo ya ramani hiyo hiyo. Katika maelezo ya ahadi katika mfano, kati ya hatua hizi, kigezo kilicho na kigezo kilichotolewa pia kimeondolewa sifuri. Hata hivyo, hii haiwezekani kutokea katika nginx nyingi zinazoendeshwa, na kwa hivyo udhaifu huo uliathiri watu wachache. Pia inafaa kuzingatia kwamba marekebisho ya hesabu ya urefu haswa kwa kesi hii hayako katika marekebisho yaliyofanywa (au nilitafuta vibaya?), kuna ulinzi tu unaobadilisha tatizo kuwa kushindwa kwa ombi la HTTP lililodhibitiwa. Ingawa marekebisho mengine yaliongezwa kwenye freenginx mnamo Julai 19 (5bfb, 7622, b906) kuhesabu urefu kwa hali kama hiyo, lakini haijulikani wazi kama hii ndiyo kesi au la.

Udhaifu ulionekana katika toleo la nginx 0.9.6, marekebisho yalijumuishwa katika matoleo ya freenginx 1.31.3, nginx 1.30.4, nginx 1.31.3.

Nginx SA inawashukuru watu kadhaa kwa kuripoti kwa uhuru udhaifu na kufuata "viwango vya ufichuzi vilivyoratibiwa":

F5 inamtambua Ming Xuan, DKD (@pidifn), Ji'an Zhou, na Zhen Yan wa AntAISecurityLab, Rafael Gacek, Sergii Negodiuk wa EVO.company, Lam Jun Rong wa Calif.io, Mufeed VH wa Winfunc Research (winfunc.com), Vexera AI (https://vexera.ai), Tu Tran Dinh (@1w4y), Stan Shaw (cyberstan), qianshuidewajueji, zenneth (randomguy6407), Zhenpeng (Leo) Lin wa depthfirst, Lukas Johannes Moeller, Melih Tolga Sahin wa Vodafone Türkiye, Ayoub Nabil Boubagrat (GitHub: @ayoubnabil), na Milan Jovic (Kljunowsky) kwa kutuletea suala hili kwa uhuru na kufuata viwango vya juu vya ufichuzi ulioratibiwa.

Katika freenginx, taarifa inayoambatana kuhusu marekebisho kwa kweli imepunguzwa kwa ujumbe wa ahadi. ChangelogMarekebisho haya hayajaandikwa hata kama "usalama" au "urekebishaji wa hitilafu," bali "kipengele." Inavyoonekana, mwandishi hakuliona suala hili kuwa muhimu. Haiwezekani kubaini uhusiano kati ya masuala yaliyoripotiwa na watu waliotajwa hapo juu katika F5 na ahadi iliyonakiliwa kutoka kwa freenginx, au kama wao (au mtu mwingine yeyote) waliripoti suala hilo kwa mwandishi wa freenginx.

Chanzo: linux.org.ru

Nunua upangishaji wa kuaminika wa tovuti zilizo na ulinzi wa DDoS, seva za VPS VDS 🔥 Nunua upangishaji wa tovuti unaoaminika kwa ulinzi wa DDoS, seva za VPS VDS | ProHoster