خانه » CVE-2026-33032

CVE-2026-33032

Nginx UI: Unauthenticated MCP Endpoint Allows Remote Nginx Takeover

توسط Vulnerbyte Alerts
137 بازدید
هشدار سایبری CVE-2026-33032

چکیده

آسیب‌پذیری بحرانی در nginx-ui به دلیل عدم اعمال احراز هویت روی مسیر /mcp_message است. این مسیر تنها از لیست سفید IP استفاده می‌کند که به‌طور پیش‌فرض خالی است و همین باعث می‌شود همه درخواست‌ها مجاز به نظر برسند. این ضعف امنیتی به مهاجم این امکان را می‌دهد که بدون نیاز به احراز هویت، تمام ابزارهای MCP را فراخوانی کند و کنترل کامل سرویس Nginx را در اختیار بگیرد. مهاجم با این دسترسی می‌تواند پیکربندی‌های Nginx را تغییر دهد، فایل‌های پیکربندی را ایجاد، ویرایش یا حذف کند، پیکربندی‌ها را مجدداً بارگذاری کند و در نهایت سرور Nginx را به طور کامل تصاحب کند.

توضیحات

آسیب‌پذیری CVE-2026-33032 در nginx-ui ناشی از ضعف امنیتی در پیاده‌سازی احراز هویت  مطابق با CWE-306 برای یکی از مسیرهای MCP (Model Context Protocol) است. در این آسیب‌پذیری، دو مسیر اصلی وجود دارد؛ مسیر /mcpکه از هر دو روش لیست سفید IP (IP Whitelisting) و احراز هویت استفاده می‌کند و مسیر  /mcp_messageکه فقط از لیست سفید IP بهره می‌برد و هیچ‌گونه احراز هویتی بر روی آن اعمال نشده است. مشکل اصلی از آنجا ناشی می‌شود که لیست سفید IP به‌طور پیش‌فرض خالی است و این موضوع باعث می‌شود که میان‌افزار (middleware) به‌طور نادرست آن را به‌عنوان اجازه به همه (Allow All) تفسیر کند. این عملکرد fail-open به مهاجم این امکان را می‌دهد که بدون احراز هویت، از طریق درخواست‌های HTTP به پورت پیش‌فرض nginx-ui (معمولاً 9000) به ابزارهای MCP دسترسی پیدا کند.

با توجه به اینکه هر دو مسیر /mcp و /mcp_message به یک هندلر مرکزی (central handler) با نام mcp.ServeHTTP اشاره می‌کنند، مهاجم می‌تواند به تمامی ابزارهای مدیریتی موجود در سیستم دسترسی پیدا کند. این ابزارها شامل عملیات‌های بسیار حساس و حیاتی هستند که به مهاجم این امکان را می‌دهند سرویس Nginx را تحت کنترل خود درآورد. برخی از این عملیات‌ها شامل restart_nginx (راه‌اندازی مجدد سرویس Nginx)، reload_nginx (بارگذاری مجدد پیکربندی Nginx)، nginx_config_add و nginx_config_modify (ایجاد و ویرایش فایل‌های پیکربندی Nginx) هستند. از آنجا که nginx_config_add و nginx_config_modify می‌توانند فایل‌های پیکربندی حساسی مانند nginx.conf را بازنویسی کنند، مهاجم قادر خواهد بود بدون هیچ‌گونه محدودیتی پیکربندی‌های سرویس را تغییر دهد. همچنین در پیاده‌سازی این ابزارها، ایجاد پیکربندی جدید می‌تواند به‌طور خودکار موجب بارگذار مجدد سرویس Nginx شود و در نتیجه تغییرات اعمال‌شده بلافاصله فعال خواهند شد.

این آسیب‌پذیری از طریق پروتکل HTTP و ارسال درخواست JSON-RPC به مسیر /mcp_message قابل بهره‌برداری است. مهاجم می‌تواند به‌راحتی یک فایل پیکربندی مخرب ایجاد کند؛ برای مثال با افزودن یک reverse proxy (پروکسی معکوس) که تمامی درخواست‌های ورودی را به سرور تحت کنترل مهاجم هدایت کند یا با ایجاد تنظیماتی برای ثبت هدرهای Authorization در لاگ‌ها، داده‌های حساس کاربران را جمع‌آوری کند. چنین تغییراتی می‌تواند منجر به رهگیری داده‌های حساس (Sensitive Data Interception)، هدایت ترافیک به مسیرهای غیرمجاز، افشای اطلاعات مهم مربوط به پیکربندی سرور و حتی ایجاد اختلال در دسترس‌پذیری سرویس شود.

به دلیل سادگی فرآیند بهره‌برداری و وجود کد اثبات مفهومی (PoC) عمومی برای این آسیب‌پذیری، مهاجم می‌تواند به‌راحتی با استفاده از ابزارهای اسکریپتی یا ابزارهای تست نفوذ درخواست‌های مخرب را ارسال کرده و از این ضعف امنیتی سوءاستفاده کند. در واقع این آسیب‌پذیری به‌طور کامل قابل خودکارسازی است و مهاجم می‌تواند تنها با ارسال یک درخواست POST به مسیر /mcp_message، پیکربندی Nginx را تغییر داده و آن را بلافاصله بارگذاری کند.

پیامدهای این آسیب‌پذیری بسیار جدی است. مهاجم می‌تواند به‌طور کامل سرویس Nginx را تصاحب کند، پیکربندی‌ها را ویرایش کرده یا حذف کند و حتی باعث از دسترس خارج شدن سرویس شود. در چنین شرایطی ممکن است ترافیک حساس کاربران، از جمله اعتبارنامه‌ها و توکن‌های نشست، از مسیرهای غیرمجاز عبور کند. علاوه بر این، با استفاده از دستورات nginx_config_get، مهاجم قادر است به پیکربندی‌های Nginx دسترسی پیدا کرده و ساختارهای داخلی سرور را افشا کند.

در حال حاضر هیچ پچ امنیتی رسمی برای این آسیب‌پذیری منتشر نشده است و نسخه 2.3.5 و تمامی نسخه‌های پیش از آن در nginx-ui تحت تأثیر این ضعف امنیتی قرار دارند.

CVSS

Score Severity Version Vector String
9.8 CRITICAL 3.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

لیست محصولات آسیب پذیر

Versions Product
affected at <= 2.3.5 nginx-ui

استفاده محصول در ایران

در این جدول، تعداد صفحات ایندکس‌شده در گوگل با دامنه .ir که Nginx UI را ذکر کرده اند، ثبت شده است. این داده صرفاً برای برآورد تقریبی حضور محصولات در وب ایران استفاده شده و نمایانگر میزان نصب دقیق و استفاده واقعی نیست.

Approx. Usage in .ir Domain via Google (Total Pages) Search Query (Dork) Product
44000 site:.ir “Nginx” Nginx UI

نتیجه گیری

این آسیب‌پذیری با شدت بحرانی در nginx-ui به مهاجم این امکان را می‌دهد که بدون نیاز به احراز هویت، کنترل کامل سرویس Nginx را در اختیار بگیرد. مهاجم می‌تواند با استفاده از endpoint آسیب‌پذیر /mcp_message پیکربندی Nginx را تغییر دهد و به‌طور مستقیم سرویس را تحت کنترل خود درآورد. برای جلوگیری از بهره‌برداری از این آسیب‌پذیری و کاهش ریسک‌های احتمالی، اقدامات زیر پیشنهاد می‌شود:

  • غیرفعال‌کردن مسیر /mcp_message: در اسرع وقت این مسیر را در reverse proxy یا خود nginx-ui مسدود کنید تا پیش از انتشار پچ امکان سوءاستفاده وجود نداشته باشد.
  • افزودن احراز هویت اجباری: برای جلوگیری از دسترسی بدون احراز هویت به مسیر /mcp_message ، لازم است که میان‌افزار AuthRequired به این endpoint اضافه شود. این اقدام مانع از آن می‌شود که مهاجم بتواند بدون احراز هویت ابزارهای MCP را اجرا کند.
  • تقویت لیست سفید IP: عملکرد پیش‌فرض IPWhiteList باید از حالت allow-all به حالت deny-all تغییر کند. تا زمان انتشار پچ، مدیران می‌توانند IPهای مجاز را به‌صورت دستی پیکربندی کنند.
  • ایزوله‌سازی محیط اجرا: اجرای nginx-ui در کانتینرهای Docker یا محیط‌های ایزوله Kubernetes باعث محدودشدن اثر حمله می‌شود. همچنین توصیه می‌شود دسترسی شبکه به پورت مدیریتی 9000 تنها از شبکه‌های داخلی مجاز باشد.
  • استفاده از فایروال اپلیکیشن وب (WAF): راهکارهایی مانند ModSecurity می‌توانند درخواست‌های غیرمجاز به مسیرهای /mcp_message و /mcp را مسدود کنند.
  • مانیتورینگ و ثبت لاگ: لاگ‌های nginx-ui را با سطح خطای مناسب فعال کنید تا تلاش‌های مشکوک برای ایجاد یا تغییر پیکربندی‌ قابل شناسایی باشد.
  • اسکن امنیتی دوره‌ای: با ابزارهای تست امنیتی مانند OWASP ZAP یا Burp Suite مسیرهای مدیریتی را اسکن کنید و هرگونه فراخوانی MCP غیرمجاز را بررسی نمایید.
  • آموزش تیم‌های توسعه و عملیات: ضرورت پیاده‌سازی احراز هویت قوی برای مسیرهای حساس باید به‌صورت مداوم به تیم‌ها آموزش داده شود.

اجرای این روش‌ها، به‌ویژه محدودسازی فوری و افزودن احراز هویت، ریسک بهره‌برداری و تصاحب کامل سرویس Nginx را به میزان قابل‌توجهی کاهش می‌دهد.

امکان استفاده در تاکتیک‌های Mitre Attack (در زمان اجرای حمله)

Initial Access (TA0001)
مهاجم با ارسال یک درخواست SSE به endpoint /mcp و سپس درخواست‌های HTTP به endpoint /mcp_message وب‌سرور هدف، بدون نیاز به احراز هویت، دسترسی اولیه به قابلیت‌های مدیریتی Nginx را به دست می‌آورد. این دسترسی از راه دور و بدون نیاز به هیچ اعتبارنامه‌ای است.

Execution (TA0002)
پس از دسترسی به endpoint، مهاجم با فراخوانی ابزارهای MCP مانند nginx_config_add، nginx_config_modify و reload_nginx، کد مخرب خود را در قالب تغییرات پیکربندی Nginx اجرا می‌کند. این اجرا در سطح سرویس Nginx و با دسترسی کاربر سیستمی که Nginx UI تحت آن اجرا می‌شود انجام می‌گیرد.

Persistence (TA0003)
مهاجم برای حفظ دسترسی، می‌تواند با تغییر پیکربندی Nginx به گونه‌ای که تمام درخواست‌ها به سرور مخرب هدایت شوند (redirect)، یا با ایجاد بک‌دور در فایل‌های پیکربندی (مثل مسیردهی به یک سرور پراکسی معکوس که خود کنترل می‌کند)، دسترسی پایدار خود را تضمین کند.

Privilege Escalation (TA0004)
با توجه به اینکه Nginx UI معمولاً با دسترسی‌های بالا (اغلب root یا sudo) برای مدیریت سرویس Nginx اجرا می‌شود، بهره‌برداری موفق به مهاجم اجازه می‌دهد سطح دسترسی خود را به بالاترین سطح ممکن در سرور ارتقاء دهد و کنترل کامل سیستم عامل را در دست گیرد. ابزارهای MCP مانند restart_nginx و reload_nginx برای اعمال تغییرات نیازمند دسترسی بالا هستند که از طریق آسیب‌پذیری در اختیار مهاجم قرار می‌گیرد.

Defense Evasion (TA0005)
مهاجم می‌تواند با پاکسازی لاگ‌های Nginx UI و Nginx، تغییر تاریخچه فایل‌ها، یا مخفی‌سازی تغییرات پیکربندی در میان فایل‌های به‌ظاهر بی‌خطر، از دید مکانیزم‌های دفاعی پنهان بماند. همچنین به دلیل عدم نیاز به احراز هویت، هیچ رکوردی از ورود مهاجم در لاگ‌های احراز هویت سیستم ثبت نمی‌شود.

Credential Access (TA0006)
مهاجم با دسترسی به فایل‌های پیکربندی Nginx از طریق ابزار nginx_config_get، می‌تواند اطلاعات حساسی مانند کلیدهای TLS/SSL خصوصی، رمزهای عبور ذخیره‌شده در فایل‌های پیکربندی و اعتبارنامه‌های دسترسی به backendهای مختلف را استخراج کند.

Discovery (TA0007)
مهاجم با استفاده از ابزارهای MCP مانند nginx_config_list و nginx_status، می‌تواند ساختار پیکربندی Nginx، مسیر فایل‌ها، تنظیمات پراکسی و اطلاعات سرورهای پشتیبان را شناسایی کرده و نقاط ضعف بعدی را بیابد.

Collection (TA0008)
مهاجم می‌تواند تمام فایل‌های پیکربندی Nginx، لاگ‌ها و داده‌های عبوری از وب‌سرور (از طریق تغییر مسیر ترافیک) را برای انتقال آماده کند. ابزار nginx_config_get به طور خاص برای خواندن محتوای فایل‌های پیکربندی طراحی شده است.

Exfiltration (TA0010)
مهاجم داده‌های جمع‌آوری‌شده را از طریق اتصال مستقیم به سرورهای تحت کنترل خود یا از طریق کانال‌های رمزگذاری‌شده (مانند HTTPS) از محیط هدف خارج می‌کند. با تغییر پیکربندی Nginx، مهاجم می‌تواند یک پراکسی معکوس برای سرقت داده‌های عبوری ایجاد کند.

Impact (TA0040)
بهره‌برداری موفق از این آسیب‌پذیری منجر به نابودی کامل محرمانگی، یکپارچگی و در دسترس بودن وب‌سرور هدف می‌شود. مهاجم با کنترل کامل بر Nginx می‌تواند تمام ترافیک ورودی و خروجی را رهگیری، تغییر یا مسدود کند، اطلاعات حساس کاربران (از جمله کوکی‌ها، هدرهای Authorization و داده‌های فرم) را بدزدد، بدافزار به وب‌سایت‌های میزبان‌شده تزریق نماید، و از سرور به عنوان نقطه شروعی برای نفوذ به شبکه داخلی استفاده کند. این امر می‌تواند منجر به از دست رفتن اعتبار برند، نقض قوانین حریم خصوصی (مانند GDPR)، خسارات مالی جبران‌ناپذیر و در موارد بحرانی، توقف کامل عملیات تجاری شود.

منابع

  1. https://www.cve.org/CVERecord?id=CVE-2026-33032
  2. https://www.cvedetails.com/cve/CVE-2026-33032/
  3. https://github.com/0xJacky/nginx-ui/security/advisories/GHSA-h6c2-x2m2-mwhf
  4. https://vulmon.com/vulnerabilitydetails?qid=CVE-2026-33032
  5. https://vuldb.com/vuln/354241
  6. https://nvd.nist.gov/vuln/detail/CVE-2026-33032
  7. https://github.com/0xJacky/nginx-ui/security/advisories/GHSA-h6c2-x2m2-mwhf
  8. https://websec.net/blog/cve-2026-33032-unauthenticated-nginx-ui-mcp-takeover-69e1200f9fceb1f3fbe9c47f
  9. https://cwe.mitre.org/data/definitions/306.html

همچنین ممکن است دوست داشته باشید

پیام بگذارید