በግንቦት 13፣ ለከፍተኛ ጭነት ስርዓቶች ተወዳጅ ምርጫ በሆነው የ nginx ድር አገልጋይ ላይ አንድ ተጋላጭነት ተስተካክሏል፡ CVE-2026-42945, ወደ RCE ሊያመራ ይችላል። ተጋላጭነቱ ከ18 ዓመታት በፊት (በ2008) በስሪት 0.6.27 ላይ ታይቷል።
እሱን ለመጠቀም፣ የአገልጋይ ውቅር በሁሉም ሁኔታዎች የማይገኝ ነገር ግን በአንዳንድ ቦታዎች የሚገኝ የተወሰኑ የመመሪያዎች ጥምረት መያዝ አለበት፣ ለምሳሌ፡
እንደገና ይፃፉ ^(.*) /አዲስ?c=1፤
አዘጋጅ $myvar $1;
ተመላሽ 200 $myvar;
አስፈላጊ ዝርዝሮች፡
- የመጀመሪያው የዳግም ጻፍ መመሪያ ይመጣል፣ (የመጀመሪያው ክርክር) የሚመረጥ መለኪያ ያለው መደበኛ አገላለጽ (በቅንፍ ውስጥ ያለ ነገር) በ (ሁለተኛው ክርክር) የጥያቄ ምልክት በያዘ መንገድ የሚተካ ሲሆን፤
- የተቀመጠውን መመሪያ (ሁለተኛው እንደገና መጻፍ ወይም በምትኩ ይሰራል)፣ ይህም ከመጀመሪያው እንደገና የተጻፈ መንገድ የተመረጠውን መለኪያ ይጠቀማል (በዚህ ሁኔታ $1)።
ተጋላጭነቱ እንደሚከተለው ይሰራል፡
- የመጀመሪያው የጥያቄ ምልክት ሲያጋጥመው፣ የውስጥ is_args ባንዲራ ያዘጋጃል፣ ይህም ማለት "አሁን ለተተካው ዩአርኤል የሚያገኙ መለኪያዎችን እየሰበሰብን ነው፣ ሁሉም ነገር ማምለጥ አለበት" ማለት ነው፣ እና (ይህ የስህተት ዋና ነገር ነው) ይህንን ባንዲራ በስራው መጨረሻ ላይ ዳግም ማስጀመር ይረሳል፤
- የሚቀጥለው የስብስብ መመሪያ፣ ለ$myvar እሴት ሲያመነጭ፣ ቀደም ሲል የተቀመጠውን is_args ስብስብ በስህተት ይተገብራል እና የተመደበውን መለኪያ $1 ወደ my_var የሸሸውን እሴት ይጽፋል። ችግሩ የ$myvar ቋት ምትክዎቹ ከመከናወናቸው በፊት ቀደም ብሎ መመደቡ እና ርዝመቱ በis_args=0 የሚሰላ መሆኑ ነው። ይህ ማለት የሸሸው እሴት ከተመደበው ቋት የበለጠ ረጅም ነው ማለት ነው፣ ይህም ከተመደበው ቋት ውጭ ላሉ ሌሎች የአገልጋይ የውሂብ መዋቅሮች መጻፍ ያስከትላል። ይህንን ለማሳካት፣ በመደበኛ አገላለጽ መለኪያ ቦታ ላይ እንደ ፕላስ ምልክቶች ያሉ ማምለጥ የሚያስፈልጋቸውን ቁምፊዎች የያዘ ጥያቄ መላክ በቂ ነው።
በአስተናጋጁ ላይ ALSR ከሌለ፣ ይህ ተጋላጭነት ኮድን በርቀት ለማስፈጸም ጥቅም ላይ ሊውል ይችላል፣ ይህም የ nginx ሰራተኛ ሂደት መብቶችን በመጠቀም ነው። PoC (ይህ ንፁህ ብዝበዛ አይደለም፣ ነገር ግን በአሸዋ ሳጥን ውስጥ የተደረገ ማሳያ ነው)።
ተጋላጭነቱ በ nginx 1.30.1 የተረጋጋ ቅርንጫፍ እና በአዲሱ የልማት ቅርንጫፍ 1.31.0 ላይ ተስተካክሏል። ቃል መግባት አገናኝ.
ከ14 ዓመታት በፊት (2012) ተመሳሳይ ስህተት መከሰቱ ልብ ሊባል የሚገባው ጉዳይ ነው። አስቀድሞ ተስተካክሏል በአቅራቢያው ባለ ሌላ ቦታ።
---
የኤፍ5 ድህረ ገጽ የኤንጂኤንክስ ስሪትን በፍጥነት ማዘመን ካልተቻለ ለአደጋ ተጋላጭነቱ ጊዜያዊ ቅነሳን ይመክራል። ስማቸው ያልተጠቀሰባቸውን መለኪያዎች በተሰየሙ መለኪያዎች ይተኩ፣ ይህም በእነሱ መሠረት ተጋላጭነቱ እንዳይታይ ይከላከላል። ከዚህ ምሳሌ፡
ነበር፡ ^/ተጠቃሚዎች/([0-9]+)/መገለጫ/(.*)$ /profile.php?id=$1&tab=$2 የመጨረሻ፤
ሆነ፡ እንደገና ጻፍ ^/ተጠቃሚዎች/(?) [0-9]+)/መገለጫ/(? *)$ /profile.php?id=$user_id&tab=$section last;
ተጋላጭነቱን የዘገበው በዴፕዝፈርስት የዜንፔንግ (ሊዮ) ሊን ነው። እንዲሁም የሚከተሉትን ችግሮች ዘግቧል፣ እነሱም ተስተካክለዋል፡
- CVE-2026-40701 (መፈጸም) ssl_verify_client+ssl_ocsp ሲጠቀሙ (ያለ RCE በግልጽ) ከክፍያ ነፃ መጠቀም
- CVE-2026-42934 (መፈጸም) በተወሰኑ ሁኔታዎች ውስጥ በ UTF-8 ተንታኝ ውስጥ ካለው ቋት ባሻገር ማንበብ ወደ ትንሽ የውሂብ መፍሰስ ወይም የሰራተኛ ሂደት ብልሽት ሊያመራ ይችላል
- CVE-2026-42946 (መፈጸም) ከመጠን በላይ የማህደረ ትውስታ ምደባ እና የ scgi/uwsgi ሞጁሎችን ሲጠቀሙ ከወሰን ውጭ የሚነበቡ ከሆነ፣ ችግሩ በተገለጹት ፕሮቶኮሎች በኩል ተንኮል አዘል የኋላ ክፍል (ከላይ) ሲኖር ወይም ከኋላ ክፍል ጋር ለመግባባት ቻናሉን ሲያጣ፣ የ nginx ማህደረ ትውስታን ማንበብ ወይም የሰራተኛውን ሂደት ሊያበላሽ ይችላል።
ምንጭ: linux.org.ru
