← Back to PRs

#9474: fix: GitHub Actions not pinned to SHA digests in CI/CD workflows

by coygeek open 2026-02-05 08:01 View on GitHub →
## Fix Summary Most GitHub Actions across CI/CD workflows use mutable tag references (`@v4`, `@v5`, etc.) instead of immutable SHA-pinned versions. An attacker who compromises an upstream action repository can move a tag to point to malicious code, which would then execute in OpenClaw's CI pipeline with access to secrets and the ability to inject backdoors into releases. ## Issue Linkage Fixes #9473 ## Security Snapshot - CVSS v3.1: 9.0 (Critical) - CVSS v4.0: 9.5 (Critical) ## Implementation Details ### Files Changed - `.github/workflows/ci.yml` (+18/-18) - `.github/workflows/docker-release.yml` (+12/-12) - `.github/workflows/formal-conformance.yml` (+5/-5) - `.github/workflows/install-smoke.yml` (+1/-1) - `.github/workflows/workflow-sanity.yml` (+1/-1) - `Swabble/.github/workflows/ci.yml` (+1/-1) ### Technical Analysis Most GitHub Actions across CI/CD workflows use mutable tag references (`@v4`, `@v5`, etc.) instead of immutable SHA-pinned versions. An attacker who compromises an upstream action repository can move a tag to point to malicious code, which would then execute in OpenClaw's CI pipeline with access to secrets and the ability to inject backdoors into releases. ## Validation Evidence - Command: `@v4` - Status: failed ## Risk and Compatibility non-breaking; compatibility impact was not explicitly documented in the original PR body. ## AI-Assisted Disclosure AI-assisted: Codex CLI This fix was generated with AI assistance (Codex CLI). <!-- greptile_comment --> <h2>Greptile Overview</h2> <h3>Greptile Summary</h3> Pins third-party GitHub Actions in the repo’s CI/CD workflows to immutable commit SHAs (e.g., `actions/checkout`, `actions/setup-node`, Docker Buildx/login/metadata/build-push, upload-artifact, github-script, etc.). This mitigates the “mutable tag” supply-chain risk where an upstream tag like `@v4` could be moved to malicious code and executed in OpenClaw’s pipelines with access to secrets and release credentials. <h3>Confidence Score: 4/5</h3> - Mostly safe to merge once the referenced action repo name is verified. - Changes are narrowly scoped to workflow `uses:` pins, which is low behavioral risk, but a single incorrect action owner/repo or SHA would break CI/CD at runtime. I found one spot that needs verification (`gradle/actions/setup-gradle@…`). - .github/workflows/ci.yml <!-- greptile_other_comments_section --> <!-- /greptile_comment -->

Most Similar PRs