nginx හි අවුරුදු 18 RCE (CVE-2026-42945)

මැයි 13 වන දින, ඉහළ බරක් සහිත පද්ධති සඳහා ජනප්‍රිය තේරීමක් වන nginx වෙබ් සේවාදායකයේ අවදානමක් නිවැරදි කරන ලදී: CVE-2026-42945, RCE වලට මඟ පෑදිය හැකිය. අවදානම වසර 18 කට පෙර (2008 දී) 0.6.27 අනුවාදයෙන් දර්ශනය විය.

එය භාවිතා කිරීම සඳහා, සේවාදායක වින්‍යාසයේ නිශ්චිත විධාන සංයෝජනයක් අඩංගු විය යුතුය, සෑම අවස්ථාවකම නොපවතින නමුත් සමහර ස්ථානවල පවතී, උදාහරණයක් ලෙස:
නැවත ලියන්න ^(.*) /new?c=1;
$myvar $1 සකසන්න;
ආපසු 200 $myvar;

වැදගත් විස්තර:

  • මුලින්ම නැවත ලිවීමේ විධානය පැමිණේ, එහිදී (පළමු තර්කය) යනු තෝරා ගත හැකි පරාමිතියක් (වරහන් තුළ ඇති දෙයක්) සහිත නිත්‍ය ප්‍රකාශනයක් වන අතර (දෙවන තර්කය) ප්‍රශ්නාර්ථ ලකුණක් අඩංගු මාර්ගයක් මගින් ප්‍රතිස්ථාපනය වේ;
  • මුල් නැවත ලිවීමේ මාර්ගයෙන් තෝරාගත් පරාමිතිය භාවිතා කරන කට්ටල විධානය (දෙවන නැවත ලිවීම හෝ if ද ඒ වෙනුවට ක්‍රියා කරයි) (මෙම අවස්ථාවේදී, $1).

අවදානම මේ ආකාරයට ක්‍රියා කරයි:

  • පළමු නැවත ලිවීමේ විධානය, ප්‍රශ්නාර්ථ ලකුණක් හමු වූ විට, අභ්‍යන්තර is_args ධජය සකසයි, එනම් "අපි දැන් ප්‍රතිස්ථාපනය කරන ලද URL සඳහා පරාමිතීන් ලබා ගන්නෙමු, සියල්ල ගැලවිය යුතුය" යන්නයි, සහ (මෙය දෝෂයේ සාරයයි) එහි කාර්යය අවසානයේ මෙම ධජය නැවත සැකසීමට අමතක කරයි;
  • $myvar සඳහා අගයක් ජනනය කිරීමේදී, පසුව ඇති set directive එක, කලින් සකසා ඇති is_args වැරදි ලෙස යොදන අතර වෙන් කරන ලද පරාමිතිය $1 හි පැන ගිය අගය my_var වෙත ලියයි. ගැටළුව වන්නේ, ආදේශන සිදු කිරීමට පෙර, $myvar සඳහා වන බෆරය කලින් වෙන් කර ඇති අතර, එහි දිග is_args=0 සමඟ ගණනය කිරීමයි. මෙයින් අදහස් කරන්නේ පැන ගිය අගය වෙන් කරන ලද බෆරයට වඩා දිගු වන අතර, වෙන් කරන ලද බෆරයෙන් පිටත අනෙකුත් සේවාදායක දත්ත ව්‍යුහයන් වෙත ලිවීමට හේතු වේ. මෙය සාක්ෂාත් කර ගැනීම සඳහා, නිත්‍ය ප්‍රකාශන පරාමිතියේ ස්ථානයේ, ප්ලස් සලකුණු වැනි පැන යා යුතු අක්ෂර සහිත ඉල්ලීමක් යැවීම ප්‍රමාණවත් වේ.

සත්කාරකයේ ALSR නොමැති නම්, මෙම අවදානම nginx සේවක ක්‍රියාවලියේ වරප්‍රසාද සමඟ දුරස්ථව කේතය ක්‍රියාත්මක කිරීමට යොදා ගත හැකිය, එහිදී PoC (මෙය පිරිසිදු සූරාකෑමක් නොව, වැලිපිල්ලක නිරූපණයකි).

nginx 1.30.1 හි ස්ථාවර ශාඛාවේ සහ නව සංවර්ධන ශාඛාව 1.31.0 හි අවදානම නිවැරදි කර ඇත. සබැඳිය කැප කරන්න.

මීට වසර 14 කට පෙර (2012) සමාන දෝෂයක් සිදුවීම සැලකිය යුතු කරුණකි. දැනටමත් නිවැරදි කර ඇත අසල තවත් ස්ථානයක.

---

NGINX අනුවාදය ඉක්මනින් යාවත්කාලීන කිරීමට නොහැකි නම්, F5 වෙබ් අඩවිය අවදානම සඳහා තාවකාලික අවම කිරීමක් නිර්දේශ කරයි. නම් නොකළ කැපවූ පරාමිතීන් නම් කරන ලද ඒවා සමඟ ප්‍රතිස්ථාපනය කරන්න, එමඟින්, ඒවාට අනුව, අවදානම ප්‍රකාශ වීම වළක්වනු ඇත. එතැන් සිට උදාහරණයක්:
was: නැවත ලියන්න ^/users/([0-9]+)/profile/(.*)$ /profile.php?id=$1&tab=$2 last;
බවට පත් විය: නැවත ලියන්න ^/පරිශීලකයින්/(? [0-9]+)/පැතිකඩ/(? .*)$ /profile.php?id=$user_id&tab=$කොටස අවසාන;

මෙම අවදානම DepthFirst හි Zhenpeng (Leo) Lin විසින් වාර්තා කරන ලදී. ඔහු පහත සඳහන් ගැටළු ද වාර්තා කළ අතර ඒවා ද නිවැරදි කර ඇත:

  • CVE-2026-40701 (කැප වෙනවා) ssl_verify_client+ssl_ocsp භාවිතා කරන විට භාවිතයෙන් පසු-නිදහස් (පැහැදිලිවම RCE නොමැතිව)
  • CVE-2026-42934 (කැප වෙනවා) නිශ්චිත තත්වයන් යටතේ UTF-8 විග්‍රහකයේ බෆරයෙන් ඔබ්බට කියවීම කුඩා දත්ත කාන්දුවකට හෝ සේවක ක්‍රියාවලි බිඳවැටීමකට හේතු විය හැක.
  • CVE-2026-42946 (කැප වෙනවා) scgi/uwsgi මොඩියුල භාවිතා කරන විට අධික මතක වෙන් කිරීම සහ සීමාවෙන් පිටත කියවීම්, ගැටළුව නිශ්චිත ප්‍රොටෝකෝල හරහා ද්වේෂසහගත පසුබිමක් (ඉහළට) තිබීමෙන් ප්‍රකාශ වේ, නැතහොත් පසුබිම සමඟ සන්නිවේදනය සඳහා නාලිකාව mitm කරන විට, nginx මතකය කියවීමට හෝ සේවක ක්‍රියාවලිය බිඳ වැටීමට හේතු විය හැක.

මූලාශ්රය: linux.org.ru

DDoS ආරක්ෂාව, VPS VDS සේවාදායකයන් සහිත අඩවි සඳහා විශ්වාසදායක සත්කාරකත්වය මිලදී ගන්න 🔥 DDoS ආරක්ෂාව, VPS VDS සේවාදායකයන් සහිත විශ්වාසදායක වෙබ් අඩවි සත්කාරකත්වය මිලදී ගන්න | ProHoster