Skip to content
Spinbox is experimental: APIs change and data may be lost. Status lists what is built and what proves it.

Security model

View Markdown

Spinbox runs code its operators do not fully trust, on machines in their own account. Its security model starts from that: a workspace’s tenant is root inside it, and may be hostile. Everything else is built so that being root in a workspace gives nothing outside it.

AssetFrom
Other workspaces, and the runnerCode inside a workspace, including root and the kernel
The installation’s network and the cloud accountA workspace’s traffic
Workspaces’ disks and memoryAnyone who reads the bucket, or a runner’s disk
The installation’s secretsAnyone who reads the database alone
Each user’s workspaces, snapshots and portsOther users of the installation
What a machine runsAnyone who changes an image, a package or a release after it was built
  • Isolation. Every workspace is a virtual machine with its own kernel. Its QEMU runs as its own user, in an empty network namespace and a bounded cgroup, and reaches nothing on the host but what it is handed.
  • Network. A workspace reaches nothing until a policy allows it, never reaches the runner’s own networks or the cloud’s metadata service, and cannot be reached from the network at all. See Network and egress and Network on AWS.
  • Data and encryption. Every layer of every disk is encrypted with its volume’s key before it leaves the runner. Keys are wrapped under a key the database does not hold. Memory snapshots have keys of their own, destroyed with them.
  • Identity and access. Every request is authorized against the resource it names, at the time it is made. “Not yours” is answered as “not found”.
  • Supply chain. Every release is signed and checked before it is unpacked. Every machine boots a read-only root the kernel verifies block by block.

Spinbox keeps its security rules in a table in its repository, docs/security/README.md. Each rule names the code that keeps it and the test that fails the build when it is broken, and a rule no test keeps says so. The site prints that table, Rules and their gates, and the README’s open items, Known gaps, from spin itself.

To report a problem, see Reporting a vulnerability.

Documents Spinbox v20261019.02. This page as Markdown, for a model or a terminal.