Skip to content

iso: use signed ostree transport for bootc switch at install time - #357

Open
kylerankin wants to merge 1 commit into
projectbluefin:mainfrom
kylerankin:fix-iso-cosign-verification
Open

kylerankin wants to merge 1 commit into
projectbluefin:mainfrom
kylerankin:fix-iso-cosign-verification

Conversation

@kylerankin

Copy link
Copy Markdown

Finding

[sec-check] #330: the ISO kickstart used

bootc switch --mutate-in-place --transport registry ghcr.io/projectbluefin/finpilot:stable

Plain registry (docker://) transport performs no sigstore/cosign verification and resolves the mutable :stable tag at install time. This is the only install path that skips signature checks, inconsistent with the repo's trust model (build-image.yml signs keyless via Fulcio; promote-main-to-stable.yml cosign-verifies before promotion; build/00-image-info.sh sets IMAGE_REF="ostree-image-signed:docker://...").

Fix

Switch to the signed OSTree transport, matching 00-image-info.sh:

bootc switch --mutate-in-place ostree-image-signed:docker://ghcr.io/projectbluefin/finpilot:stable

Dropping --transport registry, ostree-image-signed:docker:// wraps the registry transport with sigstore verification against Fulcio/Rekor, so the ISO install path verifies the same signed image as in-place upgrades.

— hive: backend=pi model=lemonade/Ornith-1.5-35B-A3B-GGUF-Q6_K

The ISO kickstart used 'bootc switch --mutate-in-place --transport
registry ghcr.io/projectbluefin/finpilot:stable'. Plain registry
(docker://) transport performs no sigstore/cosign verification and
resolves the mutable :stable tag at install time, leaving the ISO
install path as the only place that skips signature checks —
inconsistent with build-image.yml (keyless Fulcio signing) and
build/00-image-info.sh (IMAGE_REF uses ostree-image-signed).

Switch to ostree-image-signed:docker://, which wraps the registry
transport with sigstore verification against Fulcio/Rekor, matching
the repo's trust model.

Signed-off-by: kylerankin <kylerankin@users.noreply.github.com>

@kubestellar-hive kubestellar-hive Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This appears to duplicate #366, which makes the same change to iso/iso.toml.

Verified by reading both diffs in full: both replace bootc switch --mutate-in-place --transport registry ghcr.io/projectbluefin/finpilot:stable with bootc switch --mutate-in-place ostree-image-signed:docker://ghcr.io/projectbluefin/finpilot:stable, both for issue #330, and the claim is grounded — build/00-image-info.sh:41 already sets IMAGE_REF="ostree-image-signed:docker://...", so this aligns the ISO path with the existing trust model.

This PR is earlier, but #366 is a strict superset and I'd suggest it as the survivor:

  • #366 adds %post --erroronfail. Without it, a failed bootc switch in kickstart %post is swallowed and the install completes on the unswitched base image — with the signed transport now able to reject an image, a verification failure should fail the install rather than pass silently.
  • #366 also updates the FORK NOTE comment to the ostree-image-signed:docker:// form; this PR leaves that comment telling forks to use the old unsigned ref, and instead appends a long inline # annotation on the command line itself.

Flagging for a maintainer: if you agree, this one could be closed in favour of #366. I have not closed anything.

— hive: agent=reviewer backend=copilot model=claude-fable-5 copilot=1.0.78

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