sec (9/9): document that scanners must not print secrets into raw evidence#33
sec (9/9): document that scanners must not print secrets into raw evidence#33jesse-merhi wants to merge 1 commit into
Conversation
04c6ca8 to
e20d07d
Compare
…er evidence ClawScan preserves a user-defined scanner's stdout verbatim as raw evidence, so a secret the scanner prints into its own JSON output is persisted as-is. Unlike declared env values in error text, ClawScan cannot redact inside raw evidence without corrupting it. Document that a scanner must not echo credentials into its report (finding 9, resolved as a documented author contract rather than code). Also correct the scanner id rule to note the lowercase and 64-character limits added in the hardening series.
a5e0f41 to
e0dc381
Compare
|
Codex review: needs changes before merge. Reviewed July 25, 2026, 10:42 PM ET / July 26, 2026, 02:42 UTC. ClawSweeper reviewWhat this changesThis docs-only PR adds a warning that user-defined scanners must not emit secrets in raw JSON evidence and updates the documented scanner-ID rules to lowercase and 64 characters. Merge readiness⛔ Blocked by patch quality or review findings - 4 items remain Keep this PR open: the raw-evidence warning is useful, but it currently documents declared-environment-value redaction as existing behavior while that implementation remains in the separate open PR at #31. The narrow documentation correction should land only once that dependency is on the base branch, or the sentence should be qualified/removed. Likely related people: jesse-merhi is the feature introducer and recent area contributor (high confidence). Priority: P2 Review scores
Verification
How this fits togetherConfig-defined user scanners execute through the runner, and their JSON stdout is persisted as raw evidence in run artifacts. The scanner documentation defines the configuration and evidence-handling contract that scanner authors and operators rely on. flowchart TD
A[Profile scanner configuration] --> B[User-defined scanner]
B --> C[JSON stdout]
C --> D[Raw run evidence]
B --> E[Declared environment variables]
E --> F[Scanner error text]
F --> G[Declared-value redaction]
Before merge
Findings
Agent review detailsSecurityNeeds attention: The patch introduces a security-sensitive documentation claim that is not yet backed by the current merge base. Review metrics
Merge-risk optionsMaintainer options:
Technical reviewBest possible solution: Keep the raw-evidence warning, but state only landed behavior; add the error-text redaction sentence after #31 merges or rebase this PR on a base that contains it. Do we have a high-confidence way to reproduce the issue? Not applicable: this is a documentation-only PR, and the relevant check is whether its security claims match behavior already landed on current main. Is this the best way to solve the issue? No. The raw-evidence warning is the right solution, but the added error-redaction assertion should not be published until its separate implementation is merged or the wording is limited to current behavior. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 5cfa90b129f4. LabelsLabel changes:
Label justifications:
EvidenceSecurity concerns:
Acceptance criteria:
What I checked:
Likely related people:
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
|
What changes
Documentation only. Adds a note to
docs/scanners.mdtelling user-definedscanner authors not to print secrets into their JSON evidence, and corrects
the scanner-
idfield description to match the validation added earlier in theseries (lowercase, ≤64 chars).
Why it matters (finding 9)
The hardening series found nine issues. Eight are code fixes (#25–#32). The
ninth is not something ClawScan can fix in code without breaking its core
contract:
rawness is the point (auditable, unmodified scanner output).
envvalues from scanner error text(sec (7/9): redact only declared scanner secretEnv values #31), but redacting inside raw evidence would corrupt the evidence.
So finding 9 is the scanner author's contract, documented here rather than
enforced in code. This was an explicit decision, not an oversight.
The note
Scope
sec 9 of 9; stacked on #32. Docs source only — generated
dist/docs-siteisleft to the release step per repo policy. Merge order:
main → #23 → #24 → #25 … #32 → this.Verification
Prose + one table cell. No code paths touched;
gobuild/test unaffected.