آخرین اخبار
همهٔ اخبار
اکسپلویت‌ها گزارش بحرانیت ۶/۱۰

آسیب‌پذیری OpenCode: امکان اجرای کد از راه دور (RCE) در ویندوز و WSL از طریق سرورهای MCP

آسیب‌پذیری OpenCode: امکان اجرای کد از راه دور (RCE) در ویندوز و WSL از طریق سرورهای MCP

یک نقص امنیتی در عامل هوش مصنوعی کدنویسی OpenCode کشف شده است که به مهاجمان اجازه می‌دهد از طریق سرورهای MCP (Model Context Protocol) مخرب یا هک‌شده، کدهای خود را در هنگام ورود (Sign-in) کاربر، در سیستم‌های ویندوز یا WSL اجرا کنند. از آنجایی که OpenCode برای افزودن ابزارهای خارجی به سرورهای MCP متصل می‌شود، این کدها با سطح دسترسی کامل توسعه‌دهنده اجرا خواهند شد.

جزئیات فنی و نحوه حمله

مشکل زمانی رخ می‌دهد که سرور، آدرس وب مربوط به نقطه پایانی مجوز (OAuth authorization endpoint) را به کاربر ارائه می‌دهد. در سیستم‌های ویندوز و WSL، ابزار OpenCode این آدرس را به یک ابزار کمکی (Helper) می‌سپارد تا آن را در مرورگر باز کند. این ابزار کمکی، دستور PowerShell را بدون پاک‌سازی (Escaping) مناسب برای آدرس ساخته و در نتیجه، اگر آدرسی حاوی دستورات PowerShell طراحی شده باشد، مستقیماً اجرا می‌شود.

مهاجم برای بهره‌برداری از این نقص، نیاز به کنترل یک سرور MCP از راه دور دارد. این سرور لزوماً نباید از ابتدا مخرب باشد؛ بلکه یک سرور که بعداً تسخیر شده یا دامنه‌ای که مالکیت آن تغییر کرده است، می‌تواند از این روش استفاده کند.

وضعیت اصلاح و چالش شناسایی

شرکت Anomaly، سازنده OpenCode، این نقص را در نسخه 1.18.33 برطرف کرده است. با این حال، نکته بسیار مهم این است که این شرکت درخواست دریافت شناسه CVE را نداده و هیچ هشدار امنیتی رسمی منتشر نکرده است. این موضوع باعث می‌شود که اسکنرهای آسیب‌پذیری (Vulnerability Scanners) نتوانند نسخه‌های آسیب‌پذیر (از نسخه 1.0.137 تا 1.18.32) را شناسایی کنند.

تحقیقات نشان می‌دهد که ریشه این مشکل، استفاده از یک بسته قدیمی به نام “open” برای باز کردن مرورگر بوده است که در سال ۲۰۲۳ نیز ریسک تزریق دستور (Command Injection) در آن گزارش شده بود.

توصیه‌های امنیتی

  • به‌روزرسانی فوری: تمامی کاربران OpenCode در ویندوز و WSL باید بلافاصله به نسخه 1.18.33 یا بالاتر ارتقا یابند.
  • بازبینی سرورها: لیست سرورهای MCP متصل به محیط خود را بررسی و از امنیت آن‌ها اطمینان حاصل کنید.
  • مانیتورینگ: به دلیل عدم وجود CVE، شناسایی نسخه‌های آسیب‌پذیر تنها از طریق بررسی مستقیم نسخه نصب شده امکان‌پذیر است.