CI/CD pipeline injection
Só leitura — não altera nada no alvo. Só em alvo seu ou autorizado por escrito.
O vetor
Vetor: um PR malicioso ou input não sanitizado no workflow roda comandos com os secrets do CI (que têm muito poder).
O que testamos: uso de pull_request_target, interpolação de input não confiável, secrets amplos.
Os passos
Passo 1 (🟢) — auditar os workflows:
grep -RniE "pull_request_target|\\$\\{\\{ *github.event|run: .*\\$\\{\\{" .github/workflows/
O que esperar
- VULNERÁVEL:
pull_request_target+ checkout do PR + uso de${{ github.event.* }}emrun:; secrets disponíveis a forks. - SEGURO: inputs tratados como dado (env, aspas), permissões mínimas (
permissions:), secrets não expostos a PR de fork.
Como corrigir
Correção (P1): permissions: read-all por padrão; evitar pull_request_target com checkout de código não confiável; gitleaks no CI (Ex. 32). (DOCUMENTACAO §4.8.)
Limpeza: nenhuma.