Skip to content
This repository was archived by the owner on Aug 3, 2026. It is now read-only.

validator: stop op4 eval subprocess inheriting secrets - #70

Merged
bitzic merged 1 commit into
mainfrom
fix/op4-env-sanitize
Jun 27, 2026
Merged

validator: stop op4 eval subprocess inheriting secrets#70
bitzic merged 1 commit into
mainfrom
fix/op4-env-sanitize

Conversation

@bitzic

@bitzic bitzic commented Jun 27, 2026

Copy link
Copy Markdown
Contributor
  • op4 _patched_hidden_eval imports + executes the miner's patched model.py; it was spawned with no env=, so miner code inherited the validator's full os.environ
  • pass allowlist-only env via proof.runner._sanitized_env (mirrors the miner-side training subprocess)
  • extend the env blocklist: RALPH_VALIDATOR_PRIVKEY[_FILE] (the seal privkey) + the enforcement escape hatches (TEST_MODE, ALLOW_SYNTHETIC _EVAL, ALLOW_MOCK_ATTESTATION, SKIP_HANDSHAKE)
  • redact subprocess stderr before re-raising
  • stopgap ahead of the full execution sandbox (op4 + audit)

- op4 _patched_hidden_eval imports + executes the miner's patched
  model.py; it was spawned with no env=, so miner code inherited the
  validator's full os.environ
- pass allowlist-only env via proof.runner._sanitized_env (mirrors the
  miner-side training subprocess)
- extend the env blocklist: RALPH_VALIDATOR_PRIVKEY[_FILE] (the seal
  privkey) + the enforcement escape hatches (TEST_MODE, ALLOW_SYNTHETIC
  _EVAL, ALLOW_MOCK_ATTESTATION, SKIP_HANDSHAKE)
- redact subprocess stderr before re-raising
- stopgap ahead of the full execution sandbox (op4 + audit)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@bitzic
bitzic merged commit 5150016 into main Jun 27, 2026
4 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant