Skip to content

ci: authenticate downloaded tool execution#65

Merged
loadingalias merged 1 commit into
mainfrom
t5-5-authenticated-ci-tools
Jul 23, 2026
Merged

ci: authenticate downloaded tool execution#65
loadingalias merged 1 commit into
mainfrom
t5-5-authenticated-ci-tools

Conversation

@loadingalias

Copy link
Copy Markdown
Owner

Summary

  • authenticate every direct CI executable with an exact repository-owned SHA-256 or OCI digest before extraction or execution
  • replace Cargo-binstall and installer-action fallbacks with exact package-manager installs in fresh, uncached roots
  • pin and verify Wasmtime, Zig, Codecov, Scorecard, Cargo, Go, APT, OPAM, and Rustup boundaries
  • add deterministic integrity, cache-poisoning, fallback, platform, and installer-ownership regressions

Security properties

  • missing or malformed metadata, unsupported platforms, mutable URLs, and checksum mismatches fail closed
  • invalid downloads cannot reach extraction, installation, execution, or an unauthenticated fallback
  • cached Cargo binaries and metadata, Go module state, and OPAM switches cannot bypass the selected integrity policy

Validation

  • scripts/ci/tool-integrity-test.sh
  • bash -n and ShellCheck for changed shell scripts
  • just check-actions
  • just check
  • just test
  • just check-all
  • just test --all
  • real scripts/ci/install-tools.sh minimal source-install integration
  • scripts/ci/pre-push.sh --light
  • just push

APT and OPAM command selection is deterministically mock-tested locally; live runner integration remains for CI.

@loadingalias
loadingalias merged commit 048e6b0 into main Jul 23, 2026
15 checks passed
@loadingalias
loadingalias deleted the t5-5-authenticated-ci-tools branch July 23, 2026 03:53
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