RCE 18-vjeçar në nginx (CVE-2026-42945)

Më 13 maj u korrigjua një dobësi në serverin popullor të internetit nginx për sisteme të ngarkuara: CVE-2026-42945, që potencialisht mund të çojë në RCE. Kjo dobësi ka lindur 18 vjet më parë (në vitin 2008) në versionin 0.6.27.

Për ta shfrytëzuar atë, duhet një kombinim i caktuar i direktivave në konfigurimin e serverit, jo që të gjithë ta kenë, por që ndonjëherë të jetë e pranishme, për shembull:
rewrite ^(.*) /new?c=1;
set $myvar $1;
return 200 $myvar;

Detaje të rëndësishme:

  • SĂ« pari vjen direktiva rewrite, ku (argumenti i parĂ«) njĂ« shprehje e rregullt me njĂ« parametr tĂ« nxjerrĂ« (diçka nĂ« kllapa tĂ« rrethuara) zĂ«vendĂ«sohet me (argumentin e dytĂ«) njĂ« rrugĂ« qĂ« pĂ«rmban njĂ« pyetje;
  • direktiva set (nĂ« vend tĂ« saj gjithashtu do tĂ« funksiononte njĂ« rewrite i dytĂ« ose if), e cila pĂ«rdor parametrin e nxjerrĂ« nga rruga e shkruar e origjinĂ«s (nĂ« kĂ«tĂ« rast Ă«shtĂ« $1).

Dobësia funksionon kështu:

  • Direktiva e parĂ« rewrite, pĂ«rballĂ« shenjĂ«s sĂ« pyetje, vendos njĂ« flamur tĂ« brendshĂ«m is_args, qĂ« do tĂ« thotĂ« "po grumbullojmĂ« parametrat get pĂ«r url-nĂ« e zĂ«vendĂ«suar, duhet ta gjithĂ« ta heqim", dhe (kjo Ă«shtĂ« thelbi i defektit) harron ta resetojĂ« kĂ«tĂ« flamur nĂ« fund tĂ« punĂ«s sĂ« saj;
  • Direktiva e mĂ«pasme set, gjatĂ« formimit tĂ« vlerĂ«s pĂ«r $myvar, mĂ«katon tĂ« aplikojĂ« is_args qĂ« ishte vendosur mĂ« parĂ«, dhe regjistron nĂ« my_var vlerĂ«n e nxjerrĂ« tĂ« parametrin $1; problemi Ă«shtĂ« se buffer-i pĂ«r $myvar ndahet mĂ« herĂ«t, ende para se zĂ«vendĂ«simet tĂ« pĂ«rfundojnĂ«, dhe gjatĂ«si e tij llogaritet me is_args=0, qĂ« do tĂ« thotĂ« se vlera e zĂ«vendĂ«suar del mĂ« e gjatĂ« se buffer-i i ndarĂ«, prandaj regjistrimi ndodhi jashtĂ« buffer-it tĂ« ndarĂ« nĂ« struktura tĂ« tjera tĂ« dhĂ«nash tĂ« serverit. PĂ«r tĂ« ndodhur kjo, mjafton tĂ« dĂ«rgoni njĂ« kĂ«rkesĂ« me simbole qĂ« duhet tĂ« zĂ«vendĂ«sohen, pĂ«r shembull shenjat "plus", nĂ« vendin e nxjerrjes sĂ« parametrave tĂ« shprehjes sĂ« rregullt.

Nëse në host nuk ka ALSR, kjo dobësi mund të shfrytëzohet për ekzekutimin e kodit nga distanca me të drejtat e procesit punues të nginx, ka PoC (aty nuk ka exploit në formë të pastër, është një demonstrim në sandbox).

Dobësia është korrigjuar në degën stabile të nginx 1.30.1, dhe në degën e re zhvillimore 1.31.0. shtëpia në komitet.

ËshtĂ« e rĂ«ndĂ«sishme tĂ« theksohet se 14 vjet mĂ« parĂ« (nĂ« vitin 2012) njĂ« gabim i ngjashĂ«m u korrigjua nĂ« njĂ« vend tjetĂ«r pranĂ«.

——-

Në faqen F5 ka një rekomandim për neutralizimin e përkohshëm të dobësisë në rast se nuk është e mundur të përditësohet shpejt versioni i nginx - duhet të zëvendësohen parametrat e ndarë pa emër me ato të emëruara, dhe në këtë rast, sipas tyre, dobësia nuk do të shfaqet. Një shembull nga aty:
ishte: rewrite ^/users/([0-9]+)/profile/(.*)$ /profile.php?id=$1&tab=$2 last;
u bë: rewrite ^/users/(?[0-9]+)/profile/(?

.*)$ /profile.php?id=$user_id&tab=$section last;

Informacioni rreth dobësisë është ofruar nga Zhenpeng (Leo) Lin nga DepthFirst. Për më tepër, ai gjithashtu njoftoi për problemet e tjera që gjithashtu janë të korrigjuara:

  • CVE-2026-40701 (komit) pĂ«rdorim-pas-lirimit nĂ« pĂ«rdorimin e ssl_verify_client+ssl_ocsp (duke qenĂ« pa RCE)
  • CVE-2026-42934 (komit) leximi jashtĂ« burimit nĂ« parser-in utf-8 nĂ« rrethana specifike, mund tĂ« shkaktojĂ« njĂ« rrjedhje tĂ« vogĂ«l tĂ« tĂ« dhĂ«nave ose crash-in e procesit tĂ« punĂ«s
  • CVE-2026-42946 (komit) alokimi i tepruar i memories dhe leximi jashtĂ« burimit nĂ« pĂ«rdorimin e moduleve scgi/uwsgi, problemi shfaqet nĂ« prani tĂ« njĂ« backend-i tĂ« keq (upstream) pĂ«rmes protokollĂ«ve tĂ« caktuar, ose gjatĂ« mitm-it tĂ« kanalit tĂ« komunikimit me backend-in, mund tĂ« çojĂ« nĂ« leximin e memories tĂ« nginx ose crash-in e procesit tĂ« punĂ«s

Burimi: linux.org.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster