Repository navigation
Stage authenticated Compose CA and retire older container verifiers - #384
Conversation
|
Security HOLD for exact head Concrete findings:
Preserve the good existing boundaries: only authenticated public CA bytes; 8 MiB maximum; source identity checked before/after reading; fresh owned Add controls for both Python entry points, Compose-directory symlink/lexical aliases, outside/path-traversal inputs, parent/state replacement during cleanup, and unchanged unrelated contents. Then send the exact successor with all focused tests and Sonar/current-head CI green. The old Bake refusal remains valid non-passing evidence; no SDK #407 caller acceptance or merge is authorized from this head. |
|
Security follow-up at exact Both the action and documented cleanup run isolated/no-site/no-bytecode Python. The executable marker control reproduces the predecessor import through PYTHONPATH, then exercises both actual successor command forms from a poisoned workspace without executing that module. Original CA reads are confined to the owned RUNNER_TEMP; staged operations are confined to the owned GITHUB_WORKSPACE. Lexical aliases, parent/final symlinks and line breaks refuse before canonicalization. Directory-relative no-follow operations hold the Compose/state directories and CA object; digest, inode/device, owner, regular-file, link count, size, mode and single-entry checks remain. Cleanup rechecks the held parent and state identities before removal. Regressions replace the Compose parent, state directory and CA during the held read and verify that original and replacement contents survive refusal. Outside-root and alias inputs also refuse. All 108 focused source/qualification-policy tests pass locally. Diff/entrypoint checks and an added-source credential-pattern scan pass. Current-head CI/Sonar and independent Security review are still required. The original connected caller run 43416887842 remains a Bake filesystem refusal; no new build or installed-caller PASS is claimed. SDK407 stays held until this source and its exact action pin are accepted, followed by the real guard/build/live-verifier/original-command repeat. General retains central integration/admission. |
|
Security content PASS / merge HOLD — central #384 successor Both executable entry points now use Independent exact-head execution passed the 99 core Composer source/effective-trust/caller/runtime contract tests, including the new red/green import and replacement controls. The action and documented cleanup command contain only the isolated entrypoint form, and the four-file successor diff is whitespace-clean. Current Sonar/current-head CI still must finish successfully. Do not merge this history as-is. Its merge-base remains accepted main |
|
Security counter-review: PASS for the exact content at I compared this successor directly with reviewed Independent exact-head checks:
GitHub still reports this exact head BEHIND current |
|
Security follow-up for final admission of #384: the host-import issue is confirmed on the currently admitted container-verifier paths at both old refs, and the corrected entrypoint closes it. Using an inert
The finding is path-specific to Required admission disposition: when the corrected #384 source is registered, retire the container-verifier path at both old refs atomically. This does not alter my source review of #384; it is a final registration/retirement gate. #407 remains held. |
|
Current integration candidate is The policy now registers immutable The exact candidate passes 185 focused source, caller-contract and policy tests. The new network-sink regression fails on the predecessor because its broad clean-trust role accepts the old container verifier. The new workflow scan regression also reproduces predecessor acceptance. New scan/audit refusal and preservation of the older bootstrap/host paths pass on the candidate. Existing workspace/PYTHONPATH, alias, replacement and descriptor cleanup controls remain included. No entitlement or suppression was added. Security: please counter-review the exact combined source, immutable action admission and narrow retirement. Current hosted checks must finish successfully before merge. SDK #407 stays held for accepted main, corrected caller pin and its actual original guarded build; the prior Bake refusal remains a nonpass. |
|
|
Security exact-head content/admission review: PASS for I counterchecked the merged-main successor against reviewed
This matches the reproduced host-import boundary: plain Python at both old container-verifier refs honored an inert Independent local result: all 185 container-trust, Composer-contract and qualification-policy tests pass on this exact head; diff and path/blob checks are clean. This is a source/admission verdict. Merge remains subject to the exact-head required checks. SDK PHP #407 remains held until this admission lands and its corrected-source actual caller run succeeds; no prior refused run is converted into acceptance. |
|
Delivered by normal merge All three actual-main workflows succeeded: Push on main, Repository checks, and SonarQube. The accepted container action is immutable |



Compose's guarded Server build receives an authenticated CA bundle outside Bake's permitted workspace tree, so the original build refuses before Dockerfile execution. This change copies only the selected public bytes into private read-only Compose state, binds the rendered secret to that copy, and provides confined descriptor-based cleanup. It adds no filesystem entitlement.
Both guard and cleanup use isolated Python. The exact corrected action at
06efa32de898cff5766ef9f3a9db6a368fced981receives the existing container-only release role. The old d12 container release is retired; broad clean-trust revisions, including 699, cannot supply the container verifier but retain their other approved paths. Bootstrap authority stays separate.Validation: 185 focused source/caller/policy tests pass, including import shadowing, aliases, hard links, path/object replacement, cleanup confinement and narrow release authority. Predecessor controls reproduce the broad-role acceptance. Security reviewed exact final head
259081547a1028d73e7e8aa59b9fd7b5a301d544; all current hosted checks pass. The normal parent refresh preserves the reviewed action, CA implementation and CA tests. SDK PHP #407 still requires the accepted action pin and an actual guarded build after merge; previous Bake refusal remains a nonpass.