Skip to content

chore(ci): add Zizmor security analysis - #499

Open
Ben Challis (ben-challis) wants to merge 4 commits into
chore/add-actionlintfrom
chore/add-zizmor
Open

chore(ci): add Zizmor security analysis#499
Ben Challis (ben-challis) wants to merge 4 commits into
chore/add-actionlintfrom
chore/add-zizmor

Conversation

@ben-challis

@ben-challis Ben Challis (ben-challis) commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Summary

  • run Zizmor 1.29.0 as a blocking CI audit through the allow-listed official zizmorcore/zizmor-action
  • remove persisted checkout credentials and restrict workflow permissions
  • scope the GitHub App token used for releases
  • retain the repository convention of version-pinning Lendable-owned actions

Stack

This PR is based on #498 and should be reviewed and merged after it.

Verification

  • actionlint -color
  • zizmor 1.29.0 --format github .
  • official Zizmor action CI audit

Comment thread .github/workflows/ci.yml Outdated
Comment on lines +52 to +57
run: |
archive="$RUNNER_TEMP/zizmor.tar.gz"
curl --proto '=https' --tlsv1.2 -fsSL "https://github.com/zizmorcore/zizmor/releases/download/v${ZIZMOR_VERSION}/zizmor-x86_64-unknown-linux-gnu.tar.gz" -o "$archive"
echo "${ZIZMOR_SHA256} ${archive}" | sha256sum --check
tar -xzf "$archive" -C "$RUNNER_TEMP"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Binary, code or archive is pulled from a remote source without integrity verification - medium severity
A GitHub Actions Workflow was built using an artifact from a remote source without any integrity verification. If the remote artifact were silently replaced with a malicious version (for example, through a supply chain attack), the integrity and confidentiality of the environment in which the container is deployed could be compromised.

Show fix

Remediation: Validate the artifact against a trusted SHA-512 checksum in the CI/CD pipeline using sha512sum in check mode. Store the expected checksum in a file (e.g., artifact.sha512), then verify it with: sha512sum -c artifact.sha512. Enable strict error handling (for example, set -e in shell scripts) so the pipeline fails if verification fails or outputs errors.

Reply @AikidoSec ignore: [REASON] to ignore this issue.
More info

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Aikido Security (@AikidoSec) ignore: False positive: the downloaded Zizmor v1.29.0 archive is verified against its pinned published SHA-256 digest before extraction.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Based on your feedback, we ignored this issue because of the following reason:

False positive: the downloaded Zizmor v1.29.0 archive is verified against its pinned published SHA-256 digest before extraction.

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