Langflow – پلتفرم متنباز که به توسعهدهندگان اجازه میدهد پرامپتهای LLM، منابع داده و کدهای سفارشی Python را به هم متصل کنند – دارای یک نقص امنیتی بحرانی است که به هر کسی اجازه میدهد کدهای دلخواه Python را روی یک سرور آسیبپذیر اجرا کند. CVE-2026-33017 با امتیاز ۹.۸ در مقیاس CVSS، تمام نسخههای قبل از 1.9.0 را تحت تأثیر قرار میدهد و بدون نیاز به احراز هویت قابل اجرا است؛ این موضوع اپراتورها را مجبور میکند تا سیستم را ارتقا دهند یا ویژگی “public flow” را غیرفعال کنند.
این باگ چه کاری انجام میدهد
نقطه انتهایی (endpoint) public-flow در Langflow برای چتباتهای سبک دمو طراحی شده بود تا هر کسی بتواند بدون ورود به سیستم آنها را امتحان کند. این endpoint یک پارامتر data را در بدنه درخواست میپذیرد، فرض میکند که محموله (payload) حاوی یک تعریف جریان (flow definition) ایمن است و سپس محتوا را مستقیماً به تابع داخلی exec() در Python میسپارد. تابع exec() رشته را به عنوان کد ارزیابی کرده و آن را با همان سطح دسترسی فرآیند Langflow اجرا میکند.
یک مهاجم تنها به ID جریان عمومی (public flow) نیاز دارد – مقداری که اغلب در URLهای به اشتراک گذاشته شده نمایش داده میشود – تا درخواستی بسازد که در آن یک تعریف جریان مخرب جایگزین شود. هنگامی که سرور درخواست را پردازش میکند، کد Python تزریقشده بلافاصله اجرا میشود و کنترل کامل سیستم میزبان را در اختیار مهاجم قرار میدهد.
چگونه این آسیبپذیری نفوذ کرد
در نسخههای قبلی، زمانی که فیلد data وجود داشت، مسیر کدی که یک جریان را از پایگاه داده بارگذاری میکرد، دور زده میشد. سرور به جای پاکسازی (sanitising) یا اعتبارسنجی محموله، به فراخوانکننده اعتماد کرده و آن را عیناً اجرا میکرد. از آنجایی که این endpoint بدون هیچگونه ورود به سیستم قابل دسترسی است، سطح حمله برای هر نمونه از Langflow که ویژگی public flows در آن فعال باشد، کل اینترنت عمومی است.
چه کسانی در معرض خطر هستند
با توجه به امتیاز شدت، این آسیبپذیری «بحرانی» (critical) در نظر گرفته میشود.
اقدامات فوری برای کاهش خطر
- ارتقا به Langflow 1.9.0 – این تنها راه حل تأیید شده است.
- غیرفعال کردن ویژگی public flow اگر به دسترسی ناشناس نیاز ندارید.
- خاموش کردن AUTO_LOGIN – این کار از ایجاد خودکار نشست (session) برای درخواستهای بدون احراز هویت جلوگیری میکند.
- قرار دادن API پشت یک فایروال یا ریورس پروکسی برای محدود کردن دسترسی به محدودههای IP مورد اعتماد.
- استقرار یک Web Application Firewall (WAF) که درخواستهای حاوی پارامتر
dataبه endpointbuild_public_tmpرا مسدود کند.
چرا این اصلاحیه اهمیت دارد
این آسیبپذیری از یک اشتباه طراحی بنیادی سوءاستفاده میکند: اعتماد به کدی که توسط کاربر ارائه شده در محیطی که با سطح دسترسی بالا اجرا میشود. با از بین بردن این اعتماد و اعمال مدیریت ورودی سختگیرانهتر، Langflow 1.9.0 مانع بین کاربران دمو عمومی و سرور زیرساختی را دوباره برقرار میکند.
آنچه باید در ادامه زیر نظر داشت
- پاسخ جامعه کاربری – مخزن (repository) Langflow را برای وصلههای تکمیلی یا اطلاعیههای بعدی زیر نظر داشته باشید.
خلاصه کلام: هرگونه استقرار Langflow که endpoint public-flow را در معرض دید قرار میدهد، باید همین امروز وصله شود. تا زمانی که نسخه 1.9.0 در حال اجرا نیست، این ویژگی را خاموش کرده و سرویس را پشت کنترلهای شبکه محصور کنید. هزینه یک رخنه امنیتی بسیار فراتر از تلاش برای یک ارتقای سریع است.
