دسترسی ساده به یک حساب کاربری اکنون میتواند کلید تسلط کامل بر سرورهای Langflow OSS باشد. یک آسیبپذیری بحرانی از نوع اجرای کد از راه دور (Remote Code Execution یا RCE) با شناسه CVE-2026-17633 کشف شده است که در صورت فعال بودن مؤلفههای سفارشی، اجرای دستورات مخرب پایتون را ممکن میکند. این نقص امنیتی تحت دستهبندی CWE-94 (کنترل نامناسب تولید کد) قرار گرفته و دارای امتیاز CVSS 8.5 (در سطح HIGH) است.
این آسیبپذیری در حالی رخ میدهد که پلتفرمهای کمکد (Low-code) برای ارکستراسیون مدلهای زبانی بزرگ (LLM) به ستون فقرات زیرساختهای هوش مصنوعی سازمانی تبدیل شدهاند. چون Langflow به کاربران اجازه میدهد رفتار مؤلفهها را مستقیماً با پایتون تعریف کنند، یک سطح حمله پرریسک ایجاد شده است که در آن مرز بین پیکربندی و اجرا بهشدت نازک و خطرناک است.
همانطور که در تحلیلهای پیشین ما دربارهی امنیت ابزارهای عاملمحور اشاره کردیم، اعتماد به ورودیهای کاربر در محیطهای اجرایی پایتون همواره یک ریسک سیستماتیک است.
زمینه و دامنه اثرگذاری
بر اساس تحلیل فنی منتشر شده در ۲۱ سپتامبر ۲۰۲۶، این آسیبپذیری در نقطه انتهایی /api/v1/custom_component وجود دارد و نسخههای ۱.۰.۰ تا ۱.۱۰.۳ Langflow OSS را تحت تأثیر قرار میدهد.
سیستم برای کنترل دسترسی از تنظیماتی به نام LANGFLOW_ALLOW_CUSTOM_COMPONENTS استفاده میکند. این تنظیم تنها بررسی میکند که آیا این قابلیت برای کاربر فعال است یا خیر، و هیچ بازرسی امنیتی روی ایمنی کد ارسالی انجام نمیدهد. در بسیاری از محیطهای عملیاتی (Production)، این مقدار روی true تنظیم شده است که باعث میشود بررسی دسترسی بهسادگی پاس شده و کدها بدون هیچگونه بازرسی محتوایی، مستقیماً اجرا شوند.
سازوکار شکست امنیتی
ریشه این مشکل در تابع prepare_global_scope() در فایل lfx/custom/validate.py نهفته است. سیستم از یک فیلتر مبتنی بر درخت نحو انتزاعی (AST) استفاده میکند تا دستورات خطرناک در سطح بالای ماژول را حذف کند. برای مثال، دستوری مثل os.system() در سطح ماژول به عنوان یک گره ast.Expr شناسایی و بهطور خودکار حذف میشود.

اما این فیلتر در بازرسی کدهایی که داخل بدنه یک کلاس قرار دارند، شکست میخورد. منطق سیستم به این صورت است:
- تابع AST را پیمایش کرده و تنها گرههای
ast.Import،ast.ImportFrom،ast.ClassDef،ast.FunctionDef،ast.Assignوast.AnnAssignرا جمعآوری میکند. - کدهایی که داخل یک گره
ast.ClassDefقرار دارند، به عنوان بخشی از تعریف آن کلاس جمعآوری میشوند. - هنگام فراخوانی
exec()روی کد کامپایلشده، بدنه کلاس بلافاصله در زمان تعریف اجرا میشود.
به همین دلیل، مهاجم تنها کافی است کد مخرب خود را درون یک کلاس قرار دهد تا فیلتر را بهطور کامل دور بزند، بدون اینکه نیازی به رمزگذاری پیچیده یا مبهمسازی (Obfuscation) باشد. یک کد ساده مانند class PocComponent(Component): os.system("id > /tmp/pwned.txt") برای دستیابی به RCE کافی است.
شکاف در سیستم اسکن
اگرچه Langflow دارای اسکنری به نام scan_code_security() در مسیر langflow/agentic/helpers/code_security.py است، اما این ابزار تنها در مسیر دستیار عاملمحور (Agentic Assistant) برای اعتبارسنجی کدهای تولیدشده توسط LLM ادغام شده است. طبق بررسی کدها، نقطه انتهایی /api/v1/custom_component که بردار اصلی این حمله است، هرگز این اسکنر را فراخوانی نمیکند.

این نقص طراحی با CVE-2026-17632 که در ۵ اوت ۲۰۲۶ توسط IBM افشا شد، متفاوت است. آن مورد مربوط به ضعف در پوشش vars() اسکنر بود که میتوانست منجر به صدور حکم نادرست is_safe: True شود. اما مورد فعلی نشاندهنده یک غفلت ساختاری در مسیرهای اجرایی است.
برای متخصصان امنیت، این تغییر رویکرد یک شکست تکراری در ابزارهای هوش مصنوعی را برجسته میکند: این فرض که یک «پرچم قابلیت» (Feature Flag) میتواند جایگزین اعتبارسنجی ورودی شود. این اتفاق ثابت میکند حتی وقتی اسکنرهای امنیتی وجود دارند، اگر در تمام مسیرهای اجرایی سیمکشی نشده باشند، بیفایده هستند.
گام بعدی شما
برای کاهش این ریسک، مدیران سیستم باید اقدامات زیر را انجام دهند:
- بهروزرسانی فوری: به نسخه ۱.۱۰.۴ یا بالاتر ارتقا دهید که اعتبارسنجی محتوا را به نقطه انتهایی مؤلفههای سفارشی اضافه کرده است.
- اصلاح پیکربندی: در محیطهای عملیاتی، مقدار
LANGFLOW_ALLOW_CUSTOM_COMPONENTSرا رویfalseقرار دهید مگر در مواردی که این قابلیت واقعاً مورد نیاز باشد. - کنترل دسترسی: محدود کنید که دقیقاً کدام حسابهای کاربری اجازه دسترسی به قابلیت مؤلفههای سفارشی را دارند.
- سختسازی زیرساخت: دسترسیهای گروهی کاربر اجرای کانتینر (بهویژه عضویت در gid=0) را بازبینی کنید تا احتمال خروج از کانتینر یا جابهجایی جانبی (Lateral Movement) کاهش یابد.
اما این تنها بخشی از چالشهای امنیتی در ابزارهای ارکستراسیون است؛ اثرات مشابه در سایر چارچوبهای متنباز را در گزارش بعدی بررسی خواهیم کرد.




گفتگو