Repository navigation
Bump openauction for the attestation gzip cap; build the enclave image as a PR check - #59
Merged
Merged
Conversation
…e as a PR check openauction#106 caps AttestationCOSEGzip.Decompress at 64 KiB; the arbitration validator calls it on caller-supplied bytes through the type alias. Docker Build now runs only after Go passes on main, and pull requests get a build-only docker-build job, so a PR's Docker Build no longer starts a Build EIF run that measures main's tip. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
🔵 Needs a closer look
The upstream security fix and post-merge publishing workflow behavior still require verification and final human review.
0 open findings
What changed in this PR
Updates openauction to obtain the attestation decompression limit and moves PR image validation into the Go workflow.
Changes:
- Bumps openauction for the 64 KiB decompression cap.
- Adds a build-only arm64 enclave image check for PRs.
- Restricts Docker Build triggers to Go runs on
mainand updates the EIF gate comment.
| File | Description |
|---|---|
| go.sum | Updates openauction checksums. |
| go.mod | Pins the updated openauction version. |
| .github/workflows/go.yml | Adds the PR image build check without publishing. |
| .github/workflows/eif-build.yml | Updates the comment describing trigger behavior. |
| .github/workflows/docker.yml | Filters triggering Go runs to main. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
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.
Summary
github.com/cloudx-io/openauctionfroma621e06(2026-08-12) to6894ac2to pick up Cap attestation gzip decompression at 64 KiB openauction#106, which capsAttestationCOSEGzip.Decompressoutput at 64 KiB.enclaveapi.AttestationCOSEGzipis an alias of openauction's type, andValidateArbitrationAttestationcallsDecompresson caller-supplied bytes before any signature check, so an attestation of a few kilobytes could inflate without limit in the validator's memory. With this bump, an 87 KB input that inflates to 64 MiB is rejected with "attestation exceeds 65536 bytes". The only other changes between the two openauction versions in the packages imported here are additions (deal fields) and removals of functions not used here (URLEncode,ExtractCOSEPayload). The PCR and certificate functions are unchanged, and no other module moves.docker-buildjob in the Go workflow. It builds the arm64 image with no AWS credentials and no push, and it shows as a check on the PR. The same change as ci: build the enclave image as a PR check and run Docker Build only for main openauction#108.workflow_runtrigger is limited to Go runs onmain. Aworkflow_run-triggered Docker Build always reportsmain's tip as itshead_sha, so a PR's Docker Build could start a Build EIF run that measuredmain's latest commit again. The Build EIF gate comment is updated to match.Impact
mainmain(2026-09-15 16:39 to 2026-10-15 16:39 UTC)gh api --paginate "repos/cloudx-io/openarbiter/actions/workflows/eif-build.yml/runs?created=>FROM&per_page=100" --jq '.workflow_runs[] | select(.conclusion != "skipped") | .head_sha' | sort | uniq -c(builds = sum, distinct commits = line count); the same withdocker.yml, and withgo.ymlfiltered to.event == "push"(GitHub Actions API)Notes for reviewers
#21 recorded that Build EIF's trigger is coarser than the publish gate, so a pull request's Docker Build could start a Build EIF run that measures
main's tip. It left the fix as a separate change. #1 adopted openauction's CI, where 93b30e5 ran Docker Build after Go on every branch on purpose to validate PR image builds, and #33 kept that. This PR keeps the validation and moves it into the Go workflow. Aworkflow_runrun never appears in a PR's checks, so its result was visible only in the Actions tab.Docker Build and Build EIF changes take effect only after merge, because
workflow_runworkflows use the definitions onmain. Thedocker-buildjob runs on this PR.Pre-merge checklist
TestGetSystemInfo_LiveProcfs, which reads /proc/meminfo and fails on macOS on main too)go mod tidyin CI, Ratchet Lint, and actionlint 1.7.12 on the three changed workflowsdocker-buildcheck passes on this PR, building the arm64 image without pushingPost-deploy/apply verification
mainafter merge starts one Docker Build, which publishes the commit's image, and one Build EIF, which records the commit's PCRs in a[skip-build] Update PCR measurementscommit (Go 38772616578 → Docker Build 38772697209 checked out 721ac4b and pushed its image → Build EIF 38773132657 green → PCR commit c14abac; no other Docker Build run since the merge)docker-buildjob runs on the PR (Count only ranked bids in the arbitration message; drop unused curl from the EIF builder setup #60 at 29b884e: Go run 38907902751 completed 2026-10-16 13:30:53 UTC withdocker-buildjob 116996044173 green; no Docker Build run started after it)🤖 Generated with Claude Code