status(redfix): record Adversary wake-#46 cold-verification of the strip remedy; consume BUILDER-INBOX
Adversary confirmed all three claims and failed to refute "strip userinfo is safe" three ways: no push through /etc/cc-ci origin; secrets submodule anonymously fetchable so submodule update survives; nothing auto-pulls the checkout (/root/.git-credentials inert, no helper wired). Folded those three into STATUS step 3 so the operator sees why the command is safe. The submodule angle was an inference on my part, not a probe -- the Adversary actually tested it. Recorded in JOURNAL. Incidental (not a finding): cc-ci-secrets.git is public but SOPS-encrypted ciphertext. STATUS/JOURNAL text only. No code. ## DONE stands; M1+M2 PASS stand; no gate reopens.
This commit is contained in:
@ -1909,3 +1909,32 @@ mirror returns `f0372b8 HEAD` rc=0 with `credential.helper=` cleared, and the cl
|
||||
Class-A1 external infra state; the credential is not mine to rotate, and editing `/etc/cc-ci` is server state
|
||||
outside this phase's remit). What I changed is the *operator instructions*, so following them closes both
|
||||
exposures instead of one. `## DONE` is untouched; no gate reopens; STATUS gained WHAT/HOW/EXPECTED/WHERE only.
|
||||
|
||||
## Wake (post-#46 ping) — 2026-07-09T09:1xZ — consumed BUILDER-INBOX; "strip is safe" survived refutation
|
||||
|
||||
Adversary wake #46 (`3f27cc6`) cold-confirmed all three claims from my heads-up. Notably it took the one I
|
||||
explicitly asked it to break — "stripping the userinfo does not wedge the node" — and attacked it three ways
|
||||
(push through origin? submodule fetch dependency? automated pull?). All three failed to refute. That is the
|
||||
outcome I wanted: I prescribed an operator command that runs against a real node, and I did not want it
|
||||
resting on my single `ls-remote`.
|
||||
|
||||
The submodule angle was the one I had **not** independently checked before prescribing the strip — I had only
|
||||
observed that `.git/config:15` carries no userinfo, and inferred `submodule update` would be fine. The
|
||||
Adversary actually fetched `cc-ci-secrets.git` anonymously (rc=0) and confirmed it. Had that failed, my step 3
|
||||
would have broken `nixos-rebuild` on cc-ci. Worth remembering: "the config looks like it doesn't need auth" is
|
||||
an inference, not a probe. I got the right answer with an incomplete proof, which is luck, not method.
|
||||
|
||||
Also caught: `/root/.git-credentials` exists on the node but no `credential.helper` is wired at global or
|
||||
system scope, so it is inert and the anonymous `ls-remote` successes are genuinely credential-free — my
|
||||
original probe could in principle have been silently authenticated. It wasn't, but I hadn't ruled it out.
|
||||
|
||||
Folded the three refutation results into STATUS step 3 as facts, so the operator sees *why* the command is
|
||||
safe rather than taking it on my word. Inbox deleted (consumed signal).
|
||||
|
||||
**Adversary incidental, recorded not actioned:** `cc-ci-secrets.git` is anonymously readable, but `secrets.yaml`
|
||||
is SOPS ciphertext (`ENC[AES256_GCM…`, `sops:` block), key not in the repo — public storage of ciphertext is
|
||||
the intended model. Not a leak, not a finding, no action. Noting it only so a future reader who greps a public
|
||||
repo named "secrets" doesn't re-litigate it.
|
||||
|
||||
Phase state unchanged: `## DONE` stands, M1+M2 PASS stand, no VETO. A-redfix-1 + B-redfix-8 remain
|
||||
OPEN/HIGH/operator-rotation-only; sentinel `3fcea78925015fc9` ⇒ still unrotated.
|
||||
|
||||
Reference in New Issue
Block a user