انتشار جزئیات فنی و کد PoC برای آسیبپذیری NGINX که بهتازگی پچ شده، توجه جامعه امنیت سایبری را به خود جلب کرده است. آسیبپذیری NGINX با شناسه CVE-2026-42945 و امتیاز 9.2 در سیستم CVSS بهعنوان یک ضعف بحرانی شناخته میشود و میتواند برای سازمانهایی که هنوز پچهای امنیتی را اعمال نکردهاند، ریسک جدی ایجاد کند. از آنجا که این وبسرور در بخش بزرگی از زیرساختهای اینترنتی استفاده میشود، انتشار عمومی اطلاعات فنی و PoC میتواند احتمال تلاش برای بهرهبرداری عملیاتی را افزایش دهد.
ماهیت فنی آسیبپذیری NGINX
طبق اعلام F5، این ضعف از نوع سریز حافظه heap (heap buffer overflow) در کامپوننت ngx_http_rewrite_module است. مهاجم میتواند با دستکاری درخواستها، پردازه NGINX را وادار به ریاستارت کند و در نتیجه وضعیت انکار سرویس (DoS) ایجاد شود.
در صورتی که مکانیزم ASLR (Address Space Layout Randomization) غیرفعال باشد، امکان اجرای کد از راه دور (RCE) نیز وجود خواهد داشت. این سناریو سطح ریسک را از یک اختلال عملیاتی به یک تهدید بالقوه برای کنترل سیستم ارتقا میدهد.
ریشه فنی در فرآیند دو مرحلهای موتور اسکریپت
بر اساس گزارش شرکت امنیتی Depthfirst، آسیبپذیری NGINX ناشی از استفاده از فرآیند دو مرحلهای (two-pass) در موتور اسکریپت سرور است. در مرحله اول، اندازه بافر مورد نیاز محاسبه شده و در مرحله دوم، دادهها کپی میشوند.
تغییر وضعیت داخلی موتور بین این دو مرحله، به ویژه هنگام استفاده از علامت سؤال (؟) در دستورات بازنویسی، باعث تخصیص بافر کوچکتر از حد استاندارد میشود و دادههای URI خروجیسازی شده تحت کنترل مهاجم از مرز heap عبور میکنند.
مکانیزم بهرهبرداری از آسیبپذیری NGINX
مهاجم میتواند با افزودن علامت جمع (+) به درخواست URI، تابع خروجیسازی را وادار کند تا هر بایت داده به سه بایت تبدیل شود و در نتیجه بافر تخصیصیافته سرریز گردد. از آنجا که استفاده از null byte در این سناریو ممکن نیست، دستیابی به RCE نیازمند بازنویسی کنترلشده ساختارهای حافظه تا رسیدن به اشارهگر هدف است؛ آن هم بدون اینکه پردازه کاری (worker process) دچار کرش شود.
بررسی عملیاتی PoC اکسپلویت
بررسی عملیاتی PoC نشان میدهد مهاجم با استفاده از تکنیک cross-request heap feng shui حافظه را بهطور دقیق دستکاری میکند. در این فرآیند، اشارهگر پاکسازی (cleanup pointer) در ساختار ngx_pool_t از طریق دادههای POST سرریز شده و سپس به یک ساختار جعلی ngx_pool_cleanup_s هدایت میشود.
هنگام تخریب pool، تابع system() اجرا میگردد. این زنجیره بهرهبرداری نشان میدهد که مهاجم میتواند با کنترل دقیق حافظه، بدون توقف پردازه کاری، دستورات دلخواه خود را مستقیماً روی سرور اجرا کند.
نسخههای پچشده برای آسیبپذیری NGINX
بر اساس اعلام رسمی F5، این ضعف در نسخههای زیر پچ شده است:
نسخههای امن NGINX Plus:
- 0.0
- R36 P4
- R32 P6
نسخههای امن NGINX Open Source:
- 31.0
- 30.1
انتشار عمومی کد PoC معمولاً فاصله بین افشای فنی و سوءاستفاده عملیاتی را کاهش میدهد. سازمانهایی که در پیکربندی خود از دستورات rewrite و set استفاده میکنند و هنوز به نسخههای امن مهاجرت نکردهاند، باید فرآیند پچ را در اولویت قرار دهند.