docs/security/overview.mdx
microsandbox runs code you don't trust, like AI agents, user submissions, plugins, scrapers, and build jobs, without handing any of it your host. This page describes the security model end to end: the boundary it draws, the guarantees that boundary gives you by default, and the things it deliberately leaves to you.
The whole model rests on one idea. The guest is untrusted, the host is trusted, and a hardware hypervisor sits between them. Every interaction a workload has with the outside world, whether files, network, secrets, or the control channel, is brokered by host-side code on the trusted side of that boundary.
A sandbox is a microVM: a real virtual machine with its own Linux kernel, scheduled by a hardware hypervisor (KVM on Linux, Apple's Hypervisor.framework on macOS). It is not a container sharing your host kernel.
<Frame> </Frame>Two actors sit on either side of one boundary:
| Side | What lives there | How it's treated |
|---|---|---|
| Guest | Your workload and its processes, the guest Linux kernel, and agentd (the in-guest agent) | Fully untrusted. Assume it is adversarial. |
| Host | Your application or the msb CLI, plus the per-sandbox process that embeds the VMM, network stack, filesystem broker, and secret injection | Trusted. It enforces the boundary. |
The guest reaches the host only through a fixed, small set of paravirtual (virtio) devices. It cannot make host syscalls, read host memory, or open host connections on its own. Everything it asks for is mediated by the trusted side.
Before any configuration, a sandbox already gives you:
Being candid about the edges is more useful than a long list of features. Here is where the model defends you, where it does not, and what it expects you to own.
api.example.com and inject a secret there, that endpoint receives the real credential. The model controls where data can go, not what the far side does with it.Each subsystem carries part of the boundary. The pages below go deep on each, candidly including the limits.
<CardGroup cols={2}> <Card title="Isolation boundary" icon="microchip" href="/security/isolation"> The microVM, the host-guest channel, and in-guest privilege. </Card> <Card title="Filesystem & images" icon="hard-drive" href="/security/filesystem"> Private root, mounts, snapshots, and image supply chain. </Card> <Card title="Network defenses" icon="network-wired" href="/security/network"> Egress filtering, SSRF, DNS rebinding, and metadata. </Card> <Card title="Secret handling" icon="key" href="/security/secrets"> How credentials stay on the host, and the exact guarantee. </Card> <Card title="Hardening" icon="user-shield" href="/security/hardening"> Dial the controls to match your threat level. </Card> </CardGroup>If you find a way across any of these boundaries, like a guest-to-host escape, a cross-sandbox leak, an egress-filter bypass, or a secret revealed outside its intended host, we want to hear about it. Use GitHub's private vulnerability reporting or email [email protected]. The full process and scope are in the project's security policy.