Skip to content

fix(p4): make hash-pinned public verifier records readable to non-root - #34

Draft
echoomegaprime wants to merge 1 commit into
mainfrom
fix/p4-public-verifier-permissions-20261028
Draft

echoomegaprime wants to merge 1 commit into
mainfrom
fix/p4-public-verifier-permissions-20261028

Conversation

@echoomegaprime

Copy link
Copy Markdown
Owner

Problem

The P4 hostile-acceptance public verifier runs as non-root UID 65532. Sealed runner attestation, admission-policy and SBOM records can have mode 0600; read-only Docker binds do not change file-read permissions, so the verifier cannot read them.

Change

  • Stage exactly three hash-pinned public verification artifacts to a temporary 0755 directory as 0444 files.
  • Check each sealed source against the expected digest and rehash the staged copy and source. Never modify the sealed source.
  • Bind the copies read-only for the verifier and destroy temporary copies after the container invocation.
  • Preserve non-verifier execution paths, memory/process/time limits, and the prohibition on mounting private signing keys.
  • Extend tests for restrictive source permissions, exact artifacts and mounts, cleanup, and tamper detection.

Exact-source evidence

  • Base: 4f7d99e2dd4422f3d81cf5b709581be963f5818a (main, Oct 28, 2026).
  • Patch artifact: ECF_CertForge_P4_permission_repair_2026-10-28.patch (SHA256 81f99d01749e378a263a3a07fc4fc692560d8f3e0eac56c3e99844688321de59).
  • QUENCH WSL2 Ubuntu Python 3.14.4 isolated environment: python -m pytest -q 630 passed, 1 skipped, 1 warning in 95.21s. Warning: upstream Starlette TestClient/httpx deprecation.
  • Targeted P4 regression groups: 17 passed in 0.86s.
  • python scripts/p1_acceptance.py: passed; synthetic defaults and tampering correctly blocked. Its synthetic PRODUCTION_READY scenario is not a production certification.
  • git diff --check passed. The native Windows pytest attempt did not pass owing to permission semantics / Temp pytest cleanup; the Unix permission tests were repeated in Linux instead.

Release boundaries

SOURCE ONLY — DRAFT. NOT DEPLOYED. Independent source review, exact-source FORGE P4 acceptance, valid owner runner attestation/admission, production evidence-chain and rollback verification, and real cross-account/cross-provider continuity tests are still required. Do not weaken security gates, issue owner signatures, merge, or promote automatically. The default branch currently also reports dependency security alerts that require separate triage.

@echoomegaprime

Copy link
Copy Markdown
Owner Author

ECF release verification update (2026-10-28 06:50 UTC): Hosted CI passed at exact head d58cca7, run https://github.com/echoomegaprime/echo-certification-forge/actions/runs/40645331237 . Full deterministic suite, P1, P6, P7, and evidence-upload steps are green; uploaded artifact ID 12796998550, digest sha256:f67b2819d6a8df73ba7c00e35f49151c67680585a32a4d75a9fff09b32c2d8a2. This is CI evidence, NOT production P4/FORGE admission. Security triage: default-branch runtime image requirements lock cryptography 49.0.0 (Dependabot alert 14, CVE-2026-69247 HIGH; fixed in 50.0.0). An existing separate PR #23 already supplies cryptography 50.0.0 hashes and a patched base image, but is stacked on PR #20 and remains unmerged; independently reconcile those changes with main before release, rather than duplicating or bypassing them. The other 17 open Dependabot alerts are in deliberately imperfect acceptance fixtures; validate exposure per fixture. ECF private-repo CodeQL is currently disabled (403), and the ECF owner-runner admission has expired. Public ECF health still serves old 1.5.1-recall5xx. HOLD merge/deploy until independent source/security review, fresh signed owner admission, exact-source P4 acceptance, rollback and real cross-account/cross-provider E2E evidence.

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.

2 participants