From e04a8b76aa04f118225bb3536fe5176dc0e64034 Mon Sep 17 00:00:00 2001 From: tegwick Date: Wed, 2 Sep 2026 00:52:14 +0200 Subject: [PATCH] Record fixture-safe ASM T-06 candidate Assistant: codex Assistant-Model: gpt-5.6-sol Assistant-Session: 01a05e30-2884-71b0-98d7-7edd16ae737b --- ...2026-09-02-secrets-engine-t06-candidate.md | 63 +++++++++++++++++++ docs/conformance/README.md | 6 ++ .../2026-09-01-conformance-loop-handoff.md | 8 +++ workplans/GH-WP-0001-foundation.md | 6 +- 4 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 docs/conformance/2026-09-02-secrets-engine-t06-candidate.md diff --git a/docs/conformance/2026-09-02-secrets-engine-t06-candidate.md b/docs/conformance/2026-09-02-secrets-engine-t06-candidate.md new file mode 100644 index 0000000..ec53af8 --- /dev/null +++ b/docs/conformance/2026-09-02-secrets-engine-t06-candidate.md @@ -0,0 +1,63 @@ +# Conformance candidate — secrets-engine approval consumption + +**Repository:** gate-house +**Status:** candidate; not executed by whitehat-security +**Date:** 2026-09-02 +**Canon target:** T-06 — Approval Replay Test +**Implementer:** secrets-engine +**Implementation revision:** `3cd9955` (observed at repository revision `465c0d7`) +**Source:** State Hub message `99bf84bf-18d2-4e63-a7ac-25078e1c72d5` +**Workplan:** GH-WP-0001-T06 + +## Why this is a candidate + +secrets-engine reports that every privileged production OpenBao handler now +passes through one shared consume-before-effect function. The implementation +is at `src/secrets_engine/approval_consume.py`; its consumer contract is at +`docs/approval-consumption.md`. + +The surface exercises the Gate House T-06 invariant without requiring a live +secret, credential, approval service, or OpenBao mutation: + +- an exact same-digest retry is idempotent success; +- a different digest produces a conflict and no OpenBao call; +- missing binding, authorization failure, unavailability, and unreachable + approval-engine all fail closed before OpenBao; +- a failed effect does not unconsume the approval; +- the evidence shape contains identifiers and digests, not secret values. + +Gate House ran the implementer's focused unit suite as a target-suitability +check: + +```text +uv run --project /home/worsch/secrets-engine \ + pytest -p no:cacheprovider tests/test_approval_consume.py +17 passed in 0.36s +``` + +This confirms that a bounded fixture surface exists. It is not an offensive +probe, a known-bad calibration, or a conformance verdict. + +## What whitehat-security must still supply + +Whitehat-security owns the probe design and outcome. A conforming return still +requires all of the following under `conformance-reporting.v1`: + +1. independently identify the exact target revision and fixture boundary; +2. author a known-bad fixture that disables at least one replay protection, + such as different-digest conflict or atomic single-use consumption; +3. demonstrate that the known-bad fixture accepts a prohibited replay or loses + the T-06 oracle; +4. run the same probe against the unmodified candidate; +5. return `pass`, `fail`, `blocked`, or `not_run` with safe evidence references. + +The existing implementer tests may be reused as setup evidence but must not be +reported as independent Whitehat evidence. + +## Authorization boundary + +This candidate authorizes no live probe and no production OpenBao, credential, +approval, packet, or side effect. Whitehat may accept, revise, reject, or split +the candidate under its own rules of engagement. Gate House specifies only the +invariant, target, oracle, and report shape. + diff --git a/docs/conformance/README.md b/docs/conformance/README.md index bb1123f..d9c12bb 100644 --- a/docs/conformance/README.md +++ b/docs/conformance/README.md @@ -21,5 +21,11 @@ Returned reviews: origin-linked advisory observation is staffed for one lane; load-bearing deny stream completeness remains unknown; doctrine disposition `no_change`. +Fixture-safe candidates awaiting independent execution: + +- [`2026-09-02 — secrets-engine T-06 approval-consumption candidate`](2026-09-02-secrets-engine-t06-candidate.md): + the implementer's focused suite passes, but no whitehat-owned known-bad + calibration or verdict has returned. + No whitehat-security ASM execution report has returned under `conformance-reporting.v1`. That target set remains `not_run`, not conformance. diff --git a/history/2026-09-01-conformance-loop-handoff.md b/history/2026-09-01-conformance-loop-handoff.md index 95d2360..6948a05 100644 --- a/history/2026-09-01-conformance-loop-handoff.md +++ b/history/2026-09-01-conformance-loop-handoff.md @@ -115,3 +115,11 @@ Coordination receipts: one fixture-safe, known-bad-calibrated result in reply `c33c3a72-5bf3-4693-8861-9e9ad37d5908`. The request explicitly authorizes no live probe. + +Gate House then received a concrete, fixture-safe T-06 candidate from +secrets-engine in message `99bf84bf-18d2-4e63-a7ac-25078e1c72d5`. Revision +`3cd9955` implements consume-before-OpenBao; its focused unit suite passed +17/17 at observed repository revision `465c0d7`. This is target-suitability +evidence only. The required whitehat-owned probe, known-bad calibration, and +verdict remain pending. Candidate record: +`docs/conformance/2026-09-02-secrets-engine-t06-candidate.md`. diff --git a/workplans/GH-WP-0001-foundation.md b/workplans/GH-WP-0001-foundation.md index 328418a..e745b4c 100644 --- a/workplans/GH-WP-0001-foundation.md +++ b/workplans/GH-WP-0001-foundation.md @@ -136,4 +136,8 @@ result, and acceptance or explicit rejection of the routed source/Taxonomy residuals. Gate House acknowledged the King's Guard return and accepted whitehat's probe-ownership correction; whitehat follow-up `c33c3a72-5bf3-4693-8861-9e9ad37d5908` requests the remaining fixture-safe -calibrated result without authorizing a live probe. +calibrated result without authorizing a live probe. A concrete T-06 candidate +is now recorded from secrets-engine revision `3cd9955`; its implementer suite +passes 17/17, while independent known-bad calibration and verdict remain +pending. Candidate: +`docs/conformance/2026-09-02-secrets-engine-t06-candidate.md`.