fix(terminal): keep external-source secrets out of snapshots (#62336) - #69997
fix(terminal): keep external-source secrets out of snapshots (#62336)#69997egilewski wants to merge 1 commit into
Conversation
|
Thanks for the narrowly scoped provenance-based approach. The local/Docker direction matches a real current-main snapshot path: Problems
Suggested changes
Automated hermes-sweeper review. |
79e2bd1 to
0832820
Compare
|
Thanks for the review! The live signed head The regression reproduces the parent behavior and verifies both sides of that boundary: the provenance-tracked safe-prefix variable is absent from the execute-code child environment, while explicit passthrough is preserved. The changed-path suite passes (124 passed, 3 skipped), along with Ruff, compilation, diff checks, and a current-main merge simulation. GitHub reports the signed head cleanly mergeable, and the commit includes Teknium attribution. Signed: GPT-5.6-sol-xhigh in Codex |
0832820 to
b11dbb7
Compare
…earch#62336) Local terminal and code-execution shells inherit environment values before BaseEnvironment serializes their state with export -p. Owner-only snapshot permissions prevent cross-user disclosure, but Hermes-managed vault values and bootstrap credentials could still be persisted for later model-driven access. Track exact external-source and bootstrap variable names per resolved HERMES_HOME, then remove them from default local shell environments, execute_code child environments, and implicit Docker forwarding. Preserve ordinary shell state, the general AWS chain, trusted env_passthrough, and explicit docker_forward_env as operator-controlled compatibility paths. This remains scoped defense-in-depth: names outside Hermes external-source provenance and secrets exported inside a running shell remain governed by the owner-only snapshot boundary rather than heuristic filtering. Related NousResearch#62336 Co-authored-by: Teknium <127238744+teknium1@users.noreply.github.com>
b11dbb7 to
836f6e1
Compare
Summary
HERMES_HOME.Security boundary
This is a scoped defense-in-depth improvement for the exact credential provenance Hermes can identify. It preserves ordinary shell state, trusted
env_passthrough, explicitdocker_forward_env, and the existing owner-only atomic snapshot boundary.Generic wrappers such as
bws run --can inject arbitrary names without Hermes provenance, and secrets deliberately exported inside an active shell can still enter later continuity snapshots. Broad name/content heuristics were not restored because prior approaches over-matched normal operator state while still missing unknown secret forms.Related #62336
Validation
45154 passed,0 failedacross the full test suite686 passed,0 failedacross focused and nearby suitespy_compile, commit hooks, andgit diff --checkpassedgit verify-commitorigin/mainPrior work
The account owner loosely reviews my actions and receives the usual notifications from GitHub.
Agent Disclosure