Langflow – ایک اوپن سورس پلیٹ فارم جو ڈویلپرز کو LLM پرامپٹس، ڈیٹا ذرائع اور کسٹم Python کوڈ کو آپس میں جوڑنے کی اجازت دیتا ہے – میں ایک سنگین نقص پایا گیا ہے جو کسی کو بھی ایک کمزور سرور پر اپنی مرضی کا Python کوڈ چلانے کی اجازت دیتا ہے۔ CVE-2026-33017، جسے CVSS اسکیل پر 9.8 ریٹنگ دی گئی ہے، 1.9.0 سے پہلے کے تمام ورژنز کو متاثر کرتا ہے اور اسے بغیر کسی تصدیق (authentication) کے بھی ٹرگر کیا جا سکتا ہے، جس کی وجہ سے آپریٹرز کو اسے اپ گریڈ کرنے یا "public flow" فیچر کو بند کرنے پر مجبور ہونا پڑتا ہے۔
یہ بگ کیا کرتا ہے
Langflow کا public-flow endpoint ڈیمو اسٹائل کے چیٹ بوٹس کے لیے بنایا گیا تھا جنہیں کوئی بھی لاگ ان کیے بغیر استعمال کر سکتا ہے۔ یہ endpoint ریکویسٹ باڈی میں ایک data پیرامیٹر قبول کرتا ہے، یہ فرض کرتا ہے کہ پے لوڈ (payload) میں ایک محفوظ فلو تعریف (flow definition) موجود ہے، اور پھر اس مواد کو براہ راست Python کے بلٹ ان exec() فنکشن کے حوالے کر دیتا ہے۔ exec() اس اسٹرنگ کو کوڈ کے طور پر پرکھتا ہے اور اسے Langflow پروسیس کے انہی اختیارات (privileges) کے ساتھ چلاتا ہے۔
ایک حملہ آور کو صرف public flow کی ID کی ضرورت ہوتی ہے – ایک ایسی ویلیو جو اکثر شیئر شدہ URLs میں دکھائی دیتی ہے – تاکہ وہ ایک ایسی ریکویسٹ تیار کر سکے جو ایک نقصان دہ (malicious) فلو تعریف سے بدل دی جائے۔ جب سرور اس ریکویسٹ کو پروسیس کرتا ہے، تو داخل کیا گیا Python کوڈ فوری طور پر چل جاتا ہے، جس سے حملہ آور کو ہوسٹ سسٹم پر مکمل کنٹرول مل جاتا ہے۔
یہ کمزوری کیسے نظر انداز ہو گئی
پچھلے ورژن میں، جب data فیلڈ موجود ہوتی تھی تو ڈیٹا بیس سے فلو لوڈ کرنے والا کوڈ پاتھ بائی پاس ہو جاتا تھا۔ پے لوڈ کو صاف کرنے (sanitising) یا اس کی تصدیق (validating) کرنے کے بجائے، سرور کالر پر بھروسہ کرتا تھا اور اسے لفظ بہ لفظ چلا دیتا تھا۔ چونکہ اس endpoint تک بغیر کسی لاگ ان کے پہنچا جا سکتا ہے، اس لیے وہ تمام Langflow instances جن میں public flows فعال ہیں، ان کے لیے حملہ کرنے کی جگہ (attack surface) پورا پبلک انٹرنیٹ ہے۔
کون خطرے میں ہے
شدت کے اسکور (severity score) کو مدنظر رکھتے ہوئے، اس کمزوری کو "سنگین" (critical) سمجھا جاتا ہے۔
فوری بچاؤ کے اقدامات
- Langflow 1.9.0 پر اپ گریڈ کریں – یہ واحد تصدیق شدہ حل ہے۔
- public flow فیچر کو غیر فعال کریں اگر آپ کو گمنام رسائی (anonymous access) کی ضرورت نہیں ہے۔
- AUTO_LOGIN بند کریں – یہ غیر تصدیق شدہ ریکویسٹس کے لیے خودکار سیشن کی تخلیق کو روک دیتا ہے۔
- API کو فائر وال یا ریورس پراکسی کے پیچھے رکھیں تاکہ رسائی کو قابل اعتماد IP رینجز تک محدود کیا جا سکے۔
- Web Application Firewall (WAF) تعینات کریں جو
dataپیرامیٹر پر مشتملbuild_public_tmpendpoint پر آنے والی ریکویسٹس کو بلاک کر دے۔
یہ حل کیوں اہم ہے
یہ کمزوری ایک بنیادی ڈیزائن کی غلطی کا فائدہ اٹھاتی ہے: ایسے سیاق و سباق (context) میں صارف کے فراہم کردہ کوڈ پر بھروسہ کرنا جو اعلیٰ اختیارات (high privileges) کے ساتھ چلتا ہے۔ اس بھروسے کو ختم کر کے اور ان پٹ ہینڈلنگ کو زیادہ سخت بنا کر، Langflow 1.9.0 عوامی ڈیمو صارفین اور بنیادی سرور کے درمیان رکاوٹ کو بحال کرتا ہے۔
آگے کیا نظر رکھنا ہے
- کمیونٹی کا ردعمل – مزید پیچز (patches) یا ایڈوائزری کے لیے Langflow ریپوزٹری پر نظر رکھیں۔
خلاصہ: کوئی بھی Langflow ڈیپلائمنٹ جو public-flow endpoint کو ظاہر کر رہا ہے، اسے آج ہی پیچ (patch) کرنا ضروری ہے۔ جب تک ورژن 1.9.0 نہیں چل رہا، اس فیچر کو بند کر دیں اور سروس کو نیٹ ورک کنٹرولز کے پیچھے محفوظ بنائیں۔ ڈیٹا کی خلاف ورزی (breach) کی قیمت ایک فوری اپ گریڈ کی کوشش سے کہیں زیادہ ہے۔
