آخرین اخبار
همهٔ اخبار
امنیت هوش مصنوعی گزارش بحرانیت ۹/۱۰

آسیب‌پذیری بحرانی در MaxKB: اجرای دستورات سیستم از طریق Prompt Injection

آسیب‌پذیری بحرانی در MaxKB: اجرای دستورات سیستم از طریق Prompt Injection

یک آسیب‌پذیری بحرانی در پلتفرم پایگاه دانش هوش مصنوعی MaxKB کشف شده است که به مهاجمان اجازه می‌دهد با بهره‌برداری از تکنیک Prompt Injection، دستورات سیستم‌عامل (OS Commands) را روی محیط‌های آسیب‌پذیر اجرا کنند. در برخی پیکربندی‌ها، این دسترسی می‌تواند مستقیماً به میزبان (Host) زیرساختی منجر شود.

جزئیات فنی و دامنه اثر

این نقص امنیتی با شناسه‌های CVE-2026-77521 و GHSA-f36j-f34j-h3rx ردیابی می‌شود و نسخه‌های MaxKB تا ورژن 2.10.3-lts را تحت تأثیر قرار می‌دهد. برای دستیارهای هوشمند (Assistants) عمومی یا داخلی که بدون نیاز به احراز هویت در دسترس هستند، امتیاز CVSS v3.1 برابر با 10.0 (بحرانی‌ترین سطح) اختصاص یافته است.

این مشکل به‌طور خاص دستیارهایی را هدف قرار می‌دهد که با ابزارهای Model Context Protocol (MCP)، مهارت‌ها (Skills) یا زیر-برنامه‌ها (Sub-applications) پیکربندی شده‌اند. در این حالت، چت‌های کاربر از طریق یک Agent مبتنی بر deepagents هدایت شده و از SandboxShellBackend استفاده می‌کنند.

مکانیسم حمله و RCE

استفاده از این Backend به‌طور خودکار قابلیت اجرای Shell را به مدل AI اعطا می‌کند. اگرچه MaxKB کنترل‌های Human-in-the-loop را برای عملیات فایل (مانند خواندن و نوشتن) اعمال کرده است، اما هیچ محدودیتی برای اجرای دستورات سیستمی قائل نشده است. در نتیجه، یک Prompt مخرب یا حتی یک دستور غیرمستقیم جاسازی شده در اسنادی که توسط RAG (Retrieval-Augmented Generation) پردازش می‌شوند، می‌تواند منجر به اجرای دستورات Shell شود.

بیشترین ریسک در استقرار‌های Bare-metal یا سورس‌کد مشاهده می‌شود که در آن‌ها تنظیم MAXKB_SANDBOX فعال نشده باشد. در این حالت، دستورات از طریق تابع subprocess.run() در پایتون با پارامتر shell=True و با دسترسی‌های حساب کاربری سرویس MaxKB اجرا می‌شوند که منجر به Remote Code Execution (RCE) می‌گردد.

دور زدن مکانیزم‌های حفاظتی

حتی در تصاویر Docker رسمی که MAXKB_SANDBOX=1 فعال است، محققان موفق به دور زدن این لایه حفاظتی شدند. دلیل این اتفاق، ساخت دستورات به صورت رشته‌های shell=True است که توسط یک Root Shell اجرا می‌شوند. استفاده از Meta-characters (مانند Pipes یا Redirects) اجازه می‌دهد مهاجم حتی در صورت مسدود بودن دستورات کاربر Sandbox، فایل‌هایی با مالکیت Root ایجاد کند. همچنین، نبود دستور USER در Docker image باعث می‌شود برنامه به‌طور پیش‌فرض با UID 0 اجرا شود که شدت اثرات حمله را افزایش می‌دهد.

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

  • به‌روزرسانی فوری به نسخه MaxKB 2.10.5-lts یا نسخه‌های جدیدتر.
  • بازبینی تمامی دستیارهای متصل به ابزارهای MCP، Skills و Sub-applications.
  • بررسی سطح دسترسی‌های حساب کاربری اجراکننده سرویس برای محدود کردن اثرات احتمالی RCE.