Skip to content

ci: pin actions e tripwire publish-watch (postmortem TanStack)#9

Merged
rlueder merged 1 commit into
mainfrom
feat/tanstack-hardening
May 14, 2026
Merged

ci: pin actions e tripwire publish-watch (postmortem TanStack)#9
rlueder merged 1 commit into
mainfrom
feat/tanstack-hardening

Conversation

@rlueder
Copy link
Copy Markdown
Member

@rlueder rlueder commented May 14, 2026

Resumo

Endurecimento dos workflows após o postmortem do TanStack (2026-05-11). A entrada do ataque (pull_request_target + cache poisoning + extração de OIDC) não existe aqui, mas duas lições independentes do postmortem se aplicam:

  1. Refs flutuantes de actions — todas as @vX agora apontam para SHA imutável + comentário de versão (formato suportado pelo Renovate para bumps).
  2. Sem tripwire em registry — TanStack soube do incidente por um terceiro ~30 min depois. Novo publish-watch.yml roda cron de 15 min, compara npm view <pkg> version contra as tags git locais e abre issue security/publish-watch quando há divergência (publicação fora do fluxo).

Mudanças

  • SHA pin em todos os workflows existentes
  • publish-watch.yml (novo, se o repo publica) — cron */15 * * * * + workflow_dispatch
  • renovate.jsonhelpers:pinGitHubActionDigests + pinDigests: true no grupo github-actions

Origem dos templates: PR Precisa-Saude/tooling#34. Após esse PR fazer release do @precisa-saude/cli, precisa sync torna esta PR um no-op.

Próximos passos pós-merge

  • Se o repo publica no npm, conferir que Settings → Environments → npm-publish tem revisor requerido (gate já presente no _publish.yml).

- pin de todas as actions externas em SHA + comentário de versão
  (actions/*, pnpm/action-setup, terceiros conforme o repo)
- novo publish-watch.yml: cron de 15 min que valida que toda versão
  publicada no npm tem tag git correspondente; abre issue de
  segurança em caso de divergência
- renovate.json: preset helpers:pinGitHubActionDigests para que
  novas actions já entrem fixadas

Motivação: postmortem do TanStack (2026-05-11) destacou refs flutuantes
de actions e ausência de tripwire em registry como riscos de supply
chain independentes da entrada original do ataque.
@rlueder rlueder merged commit ad4f396 into main May 14, 2026
10 checks passed
@rlueder rlueder deleted the feat/tanstack-hardening branch May 14, 2026 15:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant