claw-code/rust/crates
Sam Lamrabte e8c8ef1142 Harden permission enforcement against sandbox bypasses
Close two ways the permission system could be bypassed:

- Workspace path traversal: normalize `.`/`..` lexically before the
  boundary prefix comparison so paths like `/workspace/../../etc` can no
  longer escape the sandbox. Fixed in both the runtime enforcer and the
  duplicate check in the tools PowerShell path classifier.
- read-only mode no longer trusts the leading token alone: reject shell
  metacharacters (chaining/substitution/redirect/pipe/subshell), drop
  interpreters and build drivers (python/node/ruby/cargo/rustc) from the
  allow-list, gate `git` to non-mutating subcommands, and reject `find`
  actions that execute or delete.

Adds regression tests for both holes. The pre-existing, unrelated
worker_boot git-metadata test failure is not affected by this change.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 13:26:39 +02:00
..
api fix(#754): missing_credentials hint now newline-delimited so JSON hint field is non-null 2026-05-26 21:23:03 +09:00
claw-analog Reject drifted claw-analog bootstrap phases 2026-05-25 19:33:37 +00:00
claw-rag-service feat(rag): add claw-rag-service 2026-05-25 11:25:25 +09:00
commands Suppress config warnings on JSON local surfaces (#3192) 2026-05-28 20:34:18 +09:00
compat-harness feat: ultraclaw droid batch — ROADMAP #41 test isolation + #50 PowerShell permissions 2026-04-12 03:06:24 +09:00
mock-anthropic-service Stabilize final gate before release checkpoint 2026-05-15 13:34:57 +09:00
plugins fix: resolve EACCES error from incorrect bundled plugins directory 2026-05-25 11:22:34 +09:00
runtime Harden permission enforcement against sandbox bypasses 2026-05-31 13:26:39 +02:00
rusty-claude-cli fix: interactive_only hint omits --resume for non-resume-safe commands (#829) 2026-05-29 16:55:57 +09:00
telemetry feat: anthropic SDK header matching + request profile 2026-04-01 05:55:25 +00:00
tools Harden permission enforcement against sandbox bypasses 2026-05-31 13:26:39 +02:00