Chore: Add attestation endpoints to allow-list#36
Merged
tykeal merged 1 commit intoJun 3, 2026
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
Adds the required egress destinations for gh attestation verify to succeed under harden-runner block mode, and reorders the existing allow-list entries deterministically (alphabetical, LC_ALL=C) to keep future diffs reviewable.
Changes:
- Allow outbound access to
tuf-repo.github.com:443(Sigstore/TUF trust material used during verification). - Allow outbound access to
tmaproduction.blob.core.windows.net:443(GitHub attestation bundle hosting). - Alphabetically sort the allow-list entries without removing any existing endpoints.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Add the two egress endpoints that 'gh attestation verify' needs so the
zizmor security audit (and any other action verifying GitHub artifact
attestations) works under harden-runner block mode:
- tuf-repo.github.com:443 - GitHub's TUF trust root
- tmaproduction.blob.core.windows.net:443 - Azure blob storage that
backs GitHub's attestation bundles
Without these, block-mode runs fail at 'gh attestation verify' with
'domain not allowed: tuf-repo.github.com' and a connection-refused
error fetching the attestation bundle from Azure blob storage. The
specific blob host is allow-listed rather than a *.blob.core.windows.net
wildcard, to keep the egress surface as narrow as possible.
Also sort the allow-list alphabetically (LC_ALL=C) so future additions
have an obvious, reviewable position.
Add a README.md alongside the allow-list that documents, in a table,
why each non-obvious endpoint is present (starting with the two above).
The table can grow over time and be backfilled for the bulk-generated
entries.
Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Matthew Watkins <mwatkins@linuxfoundation.org>
49f50c1 to
2d10632
Compare
tykeal
approved these changes
Jun 3, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
lfreleng-actionsharden-runnerallow-list, sorts the file alphabetically, and
README.mdalongsideallow_list.txtdocumenting whynon-obvious endpoints are present.
Why (endpoints)
Switching the
🌈 Zizmor Scanworkflow (and any other action that callsgh attestation verify) to harden-runner block mode currentlyfails.
lfreleng-actions/zizmor-scan-actiondownloads an attestedzizmor binary and verifies its Sigstore provenance; under block mode the
verification step is denied:
The binary download itself already works (
github.com→release-assets.githubusercontent.com, both already allow-listed). Thetwo missing endpoints are:
tuf-repo.github.com:443— GitHub's TUF trust root, used bygh attestation verifyto establish the Sigstore trust material.tmaproduction.blob.core.windows.net:443— the Azure blob storagethat serves GitHub's attestation bundles.
I've added the specific blob host rather than a
*.blob.core.windows.netwildcard to keep the egress surface as narrowas possible. The trade-off: if GitHub later rotates the storage-account
name, this entry will need updating (it would resurface as the same
gh attestation verifyfailure).README
The new
.github/harden-runner/lfreleng-actions/README.mdcarries atable recording the source/reason for non-obvious entries — starting
with the two added here (both attributed to the GitHub attestation
check during the zizmor binary download). It's intentionally partial:
the bulk-generated entries can be backfilled over time, potentially from
the tooling that produced the initial list.
Sorting
The list is sorted alphabetically (
LC_ALL=C, deterministic) so futureadditions have an obvious, reviewable position. No entries were removed.
Verification
Reproduced the failure and confirmed the fix empirically: a block-mode
zizmor run failed on exactly these two endpoints before the change. Once
this merges and a new release/tag is cut, the consuming workflows can
pin their
harden-runner-block-actionconfigto the new tag.