The gap
The README's security model is refreshingly honest, but reading it against the automations feature, there's a gap I'd love maintainer thoughts on:
- Secrets are decrypted and injected as env vars at spawn (encrypted at rest, plaintext in-sandbox).
- The git credential helper brokers short-lived shared GitHub App installation tokens into the sandbox.
- Automations (webhooks, Sentry alerts, cron) start sessions with no human in the loop, and inbound payload content reaches the agent as prompt context.
So a malicious webhook/Sentry/Linear payload = indirect prompt injection into a sandbox holding (a) decrypted org secrets and (b) git credentials valid for every repo the App is installed on — with port tunnels and browser automation as exfil channels.
The single-tenant trust assumption covers users, but not content arriving at users' agents.
Proposal (optional, default-off)
A deterministic pre-execution policy layer in sandbox-runtime:
- Secret denial — block command args/env reads targeting injected secrets + credential helper.
- Egress allowlist — fail-closed, subdomain-aware; curl/wget/tunnels restricted to known infra domains.
- Git remote allowlist — push/fetch only to configured SCM hosts.
- Per-session spend cap — including child-session fan-out.
- Signed block receipts — emitted to the session event stream for audit.
Shadow mode by default, hard blocks via flag. Zero behavior change when off.
Question for maintainers
Interest in this as an optional hardening layer? Happy to contribute the implementation (tests + docs included) if the direction is welcome — or open to pointers if you'd rather solve it at the sandbox-infra network level instead.
(Hardening proposal, not a vuln disclosure — anything sensitive routes via SECURITY.md.)
The gap
The README's security model is refreshingly honest, but reading it against the automations feature, there's a gap I'd love maintainer thoughts on:
So a malicious webhook/Sentry/Linear payload = indirect prompt injection into a sandbox holding (a) decrypted org secrets and (b) git credentials valid for every repo the App is installed on — with port tunnels and browser automation as exfil channels.
The single-tenant trust assumption covers users, but not content arriving at users' agents.
Proposal (optional, default-off)
A deterministic pre-execution policy layer in
sandbox-runtime:Shadow mode by default, hard blocks via flag. Zero behavior change when off.
Question for maintainers
Interest in this as an optional hardening layer? Happy to contribute the implementation (tests + docs included) if the direction is welcome — or open to pointers if you'd rather solve it at the sandbox-infra network level instead.
(Hardening proposal, not a vuln disclosure — anything sensitive routes via SECURITY.md.)