fix(ci): redact every sandbox evidence publication sink - #764
fix(ci): redact every sandbox evidence publication sink#764seonghobae wants to merge 24 commits into
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
|
Superseded by integrated PR #767, which preserves this complete evidence-redaction boundary and adds pre-publication stdout/stderr and service-log resource ceilings, overflow process-group termination, bounded suffix retention, and the combined confidentiality/availability regression suite. Keeping both branches open would duplicate reviews and exact-head security runs. #767 has successful central security, supply-chain, Strix, and CodeRabbit evidence and remains subject to independent approval and branch protection. |
Problem
The central sandbox wrappers publish child-process output, command metadata, reviewer notes, structured diagnostics, and service log tails as durable review evidence. A verification tool, browser runner, dependency manager, or application process can echo an explicitly allowed credential into any of those fields, creating CWE-532 log disclosure even though the execution environment itself is scrubbed.
Change
redact_textboundary;--option=value,KEY=value, full Authorization values, bearer/basic values, JWTs, and known provider-token shapes;aiohttp==3.14.3,cryptography==50.0.0, and compatiblepyOpenSSL==26.4.0closure required by the hard dependency gates;CHANGELOG.mdand document the trust boundary, limitations, rollback, and APA 7 standards basis.Scope
Exactly ten files differ from
main:CHANGELOG.mdrequirements-strix-ci.txtrequirements-strix-ci-hashes.txtscripts/ci/redact_sensitive_log.pyscripts/ci/sandboxed_verify.pyscripts/ci/sandboxed_web_e2e.pytests/test_sandboxed_output_redaction.pytests/test_redact_json_key_boundary.pytests/test_redact_sensitive_log_contract.pydocs/doctoring/sandboxed-command-log-redaction.mdThe two snapshot files are minimum exact-base security alignment, not a functional dependency change for the sandbox wrappers. This clean replacement supersedes broad/noisy #754 and secret-scanner-triggering #756. It deliberately excludes
.julesfiles, unrelated workflow changes, and committed PAT-shaped literals.Verification contract
Focused regression evidence covers completed and timed-out output, command displays, JSON result fields, evidence notes, service tails, nested JSON values, JSON keys, complete Authorization values, missing/bounded logs, separate/equal sensitive options, assignments, standalone provider tokens, malformed shell quoting, bounded scanning work, ordinary scalar preservation, and direct script execution. Every credential-shaped value is assembled at runtime and must be absent from captured stdout and stderr.
Verification gate
The PR remains draft until exact-head central tests, 100% production statement/branch coverage for the changed surface, production docstrings, Secret Scan, Semgrep, CodeQL, Python Security, dependency review, OSV, Trivy, Security Scan, OpenCode, Noema, CodeRabbit, independent current-head approval, and branch protection pass. No prior-head or superseded-PR result is evidence for this head.