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.* }} em run:; 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.

PurpleLab // plataforma de treino ofensivo + defensivo // Fase 1 — portal dinamico