As tuas pipelines são código. Por isso lemo-las.
Os teus ficheiros de workflow lidos como código: injeção, actions não fixadas, tokens e confiança, cada um com a sua correção.
- CríticaInjeção num workflowrelease.yml:24
run: echo "${{ github.event.pull_request.title }}"env: TITLE: ${{ github.event.pull_request.title }}run: echo "$TITLE"Correção prontaO título passa para uma variável de ambiente, fora da shell.
As falhas do pipeline, encontradas no ficheiro.
Injeção num workflow
- ${{ github.event.pull_request.title }}
Actions não fixadas
- actions/checkout@v3
- actions/setup-node@main
Tokens com privilégios a mais
- permissions: write-all
Confiança OIDC
- "sub": "repo:acme/*"
A injeção, corrigida no workflow.
Tal como está escrito
run: echo "${{ github.event.pull_request.title }}"O título da pull request chega a run: na shell.
Com a correção
env: TITLE: ${{ github.event.pull_request.title }}run: echo "$TITLE"O título passa para uma variável de ambiente, fora da shell.
Corrigido pelo teu agente, na sessão.
O teu agente lê estas falhas enquanto escreve e corrige-as na mesma sessão.
- CI/CDAnalisa o repositório em cada push.Detetada
- VibeDefendPassa a descoberta ao teu agente de código.Servida
- O teu agenteCorrige-a na sessão.Corrigida
- CommitEntra sem a falha.Limpo
Claude Code
Cursor
WindsurfGitHub Copilot
OpenAI Codex
Começa por um repositório.
Liga o GitHub, o GitLab, o Bitbucket ou o Azure DevOps, escolhe um repositório e a primeira análise arranca.
Em detalhe
Seis falhas de pipeline, encontradas no ficheiro.
- CWE-77, CWE-78
Injeção num workflow
Actions não fixadas
Tokens com privilégios a mais
Confiança OIDC
Fugas de segredos
Envenenamento de cache e de artefactos
Tudo o que verifica
Apanha a má configuração antes de o runner correr.
A maioria dos incidentes de pipeline já é visível no YAML. Lemo-lo como o leria um atacante.
Pipelines tratadas como código
GitHub Actions, GitLab CI, Jenkinsfile
As descobertas, na PR
Seis falhas, lidas no ficheiro.
Convertemos os teus workflows num AST e num grafo de fluxo de dados e aplicamos-lhes os nossos próprios packs de regras.
Injeção em workflows (CWE-77 / 78)
Actions não fixadas e não fiáveis
Tokens com privilégios a mais
Confiança OIDC mal configurada
Padrões de fuga de segredos
Envenenamento de cache e artefactos
Do YAML à correção
O YAML é inseguro.
Julgado antes de correr.
Fixado e restringido.
Liga o repo, o resto é automático.
Liga o GitHub ou o GitLab. Os nossos scanners leem os ficheiros de pipeline e correm a cada push (ou a pedido). Nada para instalar na tua CI, nenhum passo com runner privilegiado. As descobertas chegam ao dashboard unificado e à revisão da tua PR.
Seis dialetos de CI alimentam um único parser: GitHub Actions, GitLab CI, Bitbucket, Azure DevOps, Jenkins, CircleCI.
O commit a3f9c2e toca no release.yml. Duas execuções saem do build: #4821 e #4822.
Na barreira, o release.yml é lido como o leria um atacante: trigger, permissões, cada uses: e run:.
#4821 fica bloqueada: pull_request_target com contents: write e uma action não fixada nunca chegam ao job de deploy.
#4822 segue para prod-eu: SHA fixado, token só de leitura, o título da PR fora da shell.