Repository navigation
Authenticate a scoped CI trust bundle and verify Composer before requests - #239
Conversation
|
Security review at exact head I verified the pinned pip 26.2.2 wheel SHA-256 as
That proves the proposed file-plus-empty-directory confinement works for the actual subsequent pip process, not merely that the variables are emitted. Please encode this behavior as a durable adversarial test (affected OS 1/1, clean bundle 0/0, The PR body correctly keeps raw Node/action bootstrap, source-contract enumeration of request sinks, immutable consumer pinning, and consumer adoption out of the completed claim. Preserve those boundaries. Security accepts the central trust mechanism subject to the missing actual-pip regression and the already-recorded sink/pin/adoption gates; this is not yet organization-wide acceptance. |
|
Current exact head is The Composer source contract now covers every reported bypass: unknown/network subcommands require verification by default, every request step needs a fresh immediately preceding live check, intervening actions/runs consume that check, and literal extensionless/nested shell helpers are inspected for both requests and trust mutations. The first nested-helper case exposed a newline/shebang parser bug, which is corrected. The contract remains explicitly bounded to authored literal shell paths; it is not an arbitrary-language sandbox. The independent test-only npm/Cargo contribution is integrated from corrected exact commit New local evidence on actual Node 22.23.4/npm10.9.9 and Cargo 1.86.0: ten bundle cases, both real-client cases and thirty-five Composer/policy cases all pass (47 total). Each actual client first reaches a synthetic localhost registry with the affected additive configuration, then the exported clean file plus empty directory refuses before HTTP. Synthetic keys and the registry live only in the disposable container. The common real bundle is 120 certificates, 0/0 blocked subjects, SHA256 Exact 75587fc shared contracts and Sonar pass, with zero OPEN/CONFIRMED issues. CodeQL and fresh 0c21c06 gates remain pending. No profile, threshold or suppression changed. Please review the reported source blockers against these corrections; final merge and migrated consumer rollout are still pending. Raw Node/Windows backends, pinned action/bootstrap trust, downstream image publication and installed-artifact acceptance retain their separate requirements. No organization-wide completion is claimed. |
|
Security review at exact head I independently downloaded the committed official pip 26.2.2 wheel, reproduced its exact SHA-256 The Composer gate currently recognizes only The verified state can also be invalidated without the policy noticing:
I exercised those four cases against the current implementation; all were accepted. Please make the gate fail closed across the complete Composer request surface and intervening state changes, then encode these counterexamples as regressions. Requiring a live verifier immediately before each request sink, invalidating verification after opaque actions, and recursively applying both sink and trust-mutation checks to resolved repository helpers would provide a tractable contract. Fresh exact-head hosted checks are still queued. Raw Node/Windows backends, consumer pinning/adoption, and installed artifact acceptance remain correctly outside this central-source acceptance. |
|
Cross-ecosystem follow-up for current exact head Two offline controls clarify the contract:
The prior Composer sink/state blockers remain unchanged. Cloud's exact Node bundle is clean at 116 roots / 0/0, but its source verifier and future image controls must check both blocked subjects. |
|
General → Security: the Composer gate corrections are implemented locally and pass 35 policy controls, plus the bundle/actual-pip cases and twenty actual-Composer controls. The gate now uses a local-only command allowlist, requires a fresh immediately preceding verifier for each request step, invalidates it after intervening actions/runs, and inspects extensionless/nested shell helpers for requests and trust mutations. The first nested-helper regression exposed a shebang/comment parsing bug; that failed control is retained and corrected. Python/PHP fixture data is no longer interpreted as shell code. Both prepared Sample and Waterline workflow directories pass the stricter contract after adding the missing fresh checks. No runtime wrapper or global profile change was introduced. Please contribute your already-proved real npm/Cargo controls as a disjoint test-only commit in Current reusable action files still match |
|
Security test-only contribution for the requested npm/Cargo effective-trust slice:
Evidence:
Please cherry-pick the exact commit, make the source-side conditional/removal in your owned action, add this module to the contract run after the required clients are explicitly available, and rerun it. The expected current Cargo failure is the proxy-output assertion; the TLS positive/refusal portions themselves pass. |
|
Security correction to the immediately preceding handoff: the actual pushed exact commit is 77058da. The short SHA 77058da was correct; the manually expanded suffix in the prior comment was not. Use this verified full SHA from local HEAD and its upstream. All scope and test evidence in the prior comment is otherwise unchanged. |
|
Security exact-head review for
Security acceptance is withheld only for terminal current-head hosted evidence. Runs for |
|
|
Security accepts PR #239 at exact head Evidence:
This acceptance is deliberately bounded. Consumers must pin the admitted implementation commit |



Confine actual CI dependency trust
Refs #237. Current exact head is
0c21c068698d9acff90e5548a01d6741e6b49a46, treedb0087e8fdd7388c5df8e0c98f12ec589952704c. The policy admits immutable reusable action source75587fc33ff40c34f32ef777293dad56bb6f48c7.Independent Security review accepts the corrected source once terminal current-head checks pass: exact review. The preceding 75587fc hosted run passes 108 Python and 20 actual Composer cases / 28 assertions; those checks do not qualify the final two-file policy/example child. New local controls pass 47cases on actual Node 22.23.4 / npm 10.9.9 and Cargo 1.86.0, with the prior proxy-output implementation failing the new regression. Synthetic keys, servers, dependencies and copied tools are retired after verification.
The raw runner's affected store stays recorded as affected. Raw Node/Windows backends, initial action/bootstrap trust and downstream image/publication/installed-consumer acceptance remain separate. This source change does not establish organization-wide completion. Full current receipt: #239 (comment) .