clusev/scripts
boban 8a814337ff fix(install): validate release-image digests as ghcr.io/<owner>/<name>@sha256:<64-hex>
Codex R15 flagged that _clusev_ref_ok accepted malformed digest refs (short/non-hex,
which trigger a doomed pull instead of a build fallback) and refs carrying an embedded
newline in ANY segment (force_kv would then split .env, injecting an attacker-chosen key).
Anchor the check to an exact 64-hex sha256 digest and two ghcr.io path segments that each
start alphanumeric and otherwise contain only [A-Za-z0-9._-] — so no newline, "=",
whitespace or slash can appear anywhere in the ref. Malformed or tampered refs now fall
back to a local build and can never reach force_kv. Tests: +6 cases (short, non-hex,
path-traversal, ".." name, newline in digest, newline in owner).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 21:43:45 +02:00
..
promote.sh feat(release): string leak-guard in promote.sh + shell test 2026-07-03 19:49:31 +02:00
promote.test.sh fix(release): guard on internal-doc presence only; genericise .env.example IP 2026-06-22 22:19:19 +02:00
release-images.sh fix(install): validate release-image digests as ghcr.io/<owner>/<name>@sha256:<64-hex> 2026-07-03 21:43:45 +02:00
set-repository-url.sh chore(release): remove every 'gitea' reference from the public tree (comments, test fake-host, redundant ignore) 2026-07-03 19:54:20 +02:00
set-repository-url.test.sh chore(release): remove every 'gitea' reference from the public tree (comments, test fake-host, redundant ignore) 2026-07-03 19:54:20 +02:00