Proofs-of-Concept for Release Tampering via GitHub Actions
This GitHub repository contains PoCs (proofs of concept) demonstrating how a malicious maintainer—one who already has commit or maintainer access—can stealthily tamper with software releases built via GitHub Actions workflows. The repository was presented at fwd:cloudsec Europe 2025.
The content begins by defining the threat model: a maintainer who wants to hide malicious changes in release artifacts without altering the source code. It then walks through multiple attack paths across the SLSA pipeline stages (Source, Build, Distribution). The first path exploits the fact that GitHub Releases are mutable by default, so a maintainer can alter assets after publishing. Another path uses a typosquatted third-party GitHub Action to insert malicious behavior during the build. Other variants include abusing controlled runners (hosted or self-hosted), manipulating checkout behavior, or using orphan commits to erase traces.
For each attack path, the repository includes OPSEC considerations (what traces might be left), tampering steps, indicators of compromise, detection strategies, and defenses. Key defenses include adopting immutable releases (a GitHub feature in beta), pinning actions to commit hashes (not semver), restricting mutable operations in workflows, and deeply auditing release metadata and event logs to spot discrepancies.
Comments
Post a Comment