آسیبپذیری Flowise با شناسه CVE-2026-40933 و امتیاز CVSS 9.9 (بحرانی)، از نوع اجرای کد از راه دور (RCE) است و به مهاجم اجازه میدهد تنها با فریب کاربر برای ایمپورت یا به عبارتی وارد کردن یک Chatflow مخرب، کد دلخواه را روی سرورهای با میزبانی مستقل (Self-Hosted) اجرا کند. این ضعف امنیتی در سناریوهای واقعی میتواند منجر به کنترل کامل سرور و دسترسی به تمامی سرویسها و منابع متصل شود.
شرکت Obsidian Security اطلاعات فنی و کد اثبات مفهومی (PoC) مربوط به این آسیبپذیری Flowise را منتشر کرده است. این باگ نخستینبار در ماه آوریل و همزمان با چندین آسیبپذیری دیگر در اکوسیستمهای هوش مصنوعی مبتنی بر پروتکل MCP شرکت Anthropic افشا شد.
جزئیات فنی آسیبپذیری Flowise
Flowise یک پلتفرم متنباز محبوب برای ساخت گردشکارهای مبتنی بر مدلهای زبانی بزرگ (LLMs) و عاملهای هوش مصنوعی (AI Agents) است که با ارائه رابط Drag-and-Drop، برای توسعهدهندگان امکان طراحی بصری این جریانها را فراهم میکند. این پلتفرم با بیش از 52 هزار ستاره در GitHub یکی از پروژههای پرکاربرد در حوزه ابزارهای LLM محسوب میشود.
طبق گزارشها، آسیبپذیری Flowise یکی از ضعفهای کلیدی در محصولات متکی بر پروتکل MCP است.
به گفته OX Security، ریشه این آسیبپذیری به یک ضعف ساختاری و By Design (ناشی از طراحی سیستم) در پروتکل Anthropic MCP بازمیگردد که ماهیت آن از نوع تزریق فرمان (Command Injection) است؛ ضعفی که میتواند در کل اکوسیستم ابزارها و سرویسهای وابسته به این پروتکل گسترش پیدا کند. در همین راستا، مؤسسه NIST این ضعف را ناشی از سریالسازی ناامن (Unsafe Serialization) دستورات stdio در MCP Adapter توصیف کرده است؛ ضعفی که امکان افزودن یک MCP stdio Server با فرمان دلخواه و در نهایت اجرای کد روی سیستم هدف را فراهم میکند.
نقش نسخههای قدیمی در فعال شدن آسیبپذیری Flowise
این آسیبپذیری در نسخههای پیش از 3.1.0 به دلیل یک ضعف در مدیریت MCP شکل گرفته است. در این نسخهها کاربران میتوانستند بهسادگی یک MCP جدید اضافه کرده و هنگام تنظیم آن، هر فرمان دلخواهی را تعریف کنند. همین موضوع باعث میشد دسترسی به اجرای فرمانها روی سیستمعامل میزبان فراهم شده و در نهایت آسیبپذیری Flowise به سناریوی اجرای کد از راه دور روی سرور تبدیل گردد.
بر اساس توضیحات Obsidian Security، مهاجم تنها با فریب کاربر برای ایمپورت یک Chatflow دستکاریشده میتواند زنجیره حمله را فعال کند. در این سناریو، فقط با ایمپورت Chatflow، کد مخرب بدون نیاز به هیچ اقدام اضافهای روی سرور اجرا میشود.
سازوکار اکسپلویت از طریق Custom MCP Tool
بر اساس توضیحات Obsidian Security، هر کاربری که امکان ایجاد یا ویرایش Chatflow را داشته باشد، میتواند یک Custom MCP Tool اضافه کرده و در آن یک پیکربندی مخرب برای stdio MCP تعریف کند.
در حالت عادی، چنین سناریویی معمولاً به نفوذ داخلی یا یک حساب کاربری افشا شده نیاز دارد. با این حال، در برخی موارد مهاجم خارجی نیز میتواند این پیکربندی مخرب را در قالب یک Chatflow دستکاریشده ایجاد کند، آن را بهصورت فایل JSON ذخیره کرده و برای قربانی ارسال کند. در این مرحله، آسیبپذیری Flowise از یک قابلیت کاملاً مجاز در پلتفرم سوءاستفاده کرده و آن را به مسیر اجرای فرمانهای مخرب تبدیل میکند.
در بخش Custom MCP، منوی اقدامات قابل دسترس (Available Actions) فهرستی از ابزارهایی را نشان میدهد که توسط MCP Server ارائه شدهاند. برای ساخت این فهرست، Canvas از بکاند درخواست میکند ابزارهای موجود روی سرور را شناسایی کرده و آن را نمایش دهد. در حالت stdio transport، همین فرآیند فهرستسازی (Enumeration) باعث اجرای فرمانی میشود که از قبل در پیکربندی تعریف شده است. به همین دلیل، وقتی Chatflow در Canvas بارگذاری میشود، فقط با ایمپورت آن، فرمان مهاجم مستقیماً روی سرور اجرا میشود.
پیامدهای اجرای موفق اکسپلویت
بر اساس گزارش Obsidian Security، پس از ایمپورت یک Chatflow مخرب، کد اثبات مفهوم (PoC) یک شل معکوس (Reverse Shell) را از طریق شبکه Docker Bridge روی میزبان ایجاد میکند.
در صورت سوءاستفاده موفق از CVE-2026-40933، اجرای کد در سطح سیستمعامل و با سطح دسترسی پردازه Flowise انجام میشود؛ سطحی که در بسیاری از استقرارهای کانتینری میتواند معادل دسترسی Root باشد. در چنین شرایطی، آسیبپذیری Flowise میتواند زمینه دسترسی کامل به اطلاعات حساس از جمله اعتبارنامههای ذخیرهشده، سرویسهای متصل، پایگاههای داده، رابطهای برنامهنویسی و حسابهای ابری را فراهم کند.
به گفته Obsidian، دامنه اثر این ضعف به میزان و نوع سرویسهایی بستگی دارد که Flowise در محیط عملیاتی به آنها متصل است. در چنین سناریویی، تمامی اعتبارنامههای ذخیرهشده در پلتفرم قابل دسترسی هستند و هر سرویس متصل نیز میتواند در معرض نفوذ مهاجم قرار گیرد.
وضعیت Flowise Cloud و توصیههای امنیتی
Obsidian Security تأکید کرده است که Flowise Cloud تحت تأثیر این ضعف قرار ندارد، زیرا قابلیت stdio MCP در آن غیرفعال شده است. در مقابل، نمونههای Self-hosted (میزبانی مستقل) بهصورت پیشفرض در معرض این آسیبپذیری قرار دارند.
برای کاهش ریسک، اقدامات زیر توصیه میشود:
- بهروزرسانی به Flowise 3.1.0 یا بالاتر
- محدودسازی دسترسی به ساخت و ویرایش Chatflow
- جلوگیری از ایمپورت فایلهای JSON ناشناس
- اجرای Flowise با حداقل سطح دسترسی
- بررسی و بازبینی اعتبارنامههای ذخیرهشده
با توجه به انتشار PoC، مدیریت سریع آسیبپذیری Flowise برای تیمهای امنیتی و DevSecOps حیاتی است.