What happens
A harness can currently place the agent runtime's own telemetry and control variables into the sandbox environment with no fullsend gate involved:
What should happen
Per ADR 0085 (PR #5947): OTEL_*, CLAUDE_CODE_*, and TRACEPARENT are denied among env.sandbox keys including forge-merged bases; host_files destinations that the sandbox sources or the runtime consumes are denied, and resolved content landing in remaining sourced locations is scanned for denied assignments. Violations are pre-flight hard errors before sandbox creation — stricter than the existing warn-and-skip, scoped to the new variables only.
Context
Independent of Level 3 and worth fixing on its own: this is the same surface #5837 hardened for OIDC credentials, and the failure mode is the one the sibling agentic-ci harness shipped (content capture enabled unconditionally). Also a precondition for ADR 0084's activation contract — the gates are meaningless if the sandbox can self-enable capture.
Relates to #5837, #5917, #5948.
What happens
A harness can currently place the agent runtime's own telemetry and control variables into the sandbox environment with no fullsend gate involved:
reservedSandboxKeysdenies specific infrastructure keys and the fix(#5832): strip OIDC credentials from user-controlled environments #5837 OIDC set, but no telemetry prefixes —env.sandboxcan setOTEL_*,CLAUDE_CODE_*, orTRACEPARENTdirectly, enabling the runtime's native content capture and export to an arbitrary endpoint, or corrupting trace identity.host_filesdestinations are checked only for being non-empty, so a copied file can overwrite the sourced/sandbox/workspace/.env, or land new files in.env.d/that the sandbox sources but fullsend never reads. Forge-specifichost_files(resolveBaseResources does not fetch forge-specific skills, policy, or host_files from URL-based base harnesses #5917) share the surface.What should happen
Per ADR 0085 (PR #5947):
OTEL_*,CLAUDE_CODE_*, andTRACEPARENTare denied amongenv.sandboxkeys including forge-merged bases;host_filesdestinations that the sandbox sources or the runtime consumes are denied, and resolved content landing in remaining sourced locations is scanned for denied assignments. Violations are pre-flight hard errors before sandbox creation — stricter than the existing warn-and-skip, scoped to the new variables only.Context
Independent of Level 3 and worth fixing on its own: this is the same surface #5837 hardened for OIDC credentials, and the failure mode is the one the sibling agentic-ci harness shipped (content capture enabled unconditionally). Also a precondition for ADR 0084's activation contract — the gates are meaningless if the sandbox can self-enable capture.
Relates to #5837, #5917, #5948.