Runtime Boundary Threat Model

August 7, 2026 ยท View on GitHub

This threat model covers the supported local targets for Workcell. It also states the limits of preview targets and host-owned controls.

For build and release threats, see the CI/CD threat model.

Support boundary

The supported local rows below apply only to Apple Silicon macOS. Workcell blocks the corresponding Linux and Windows operator launches.

TargetStatusRuntime boundaryNetwork control
Colima local_vmSupported strict targetDedicated profile VM and runtime containerWorkcell profile-wide allowlist
Docker Desktop local_compatSupported compatibility targetDocker Desktop and runtime containerNo Workcell allowlist
aws-ec2-ssm and gcp-vm remote_vmPreview-only and launch-blockedDry-run broker plan onlyProvider design only
Apple containerPreview-only with no operator launch pathEvaluation code onlyNo operator-session control

Assets

AssetRequired protection
Host credentials, homes, keychains, and socketsThe safe path must not expose them.
Injected credentialsOnly the selected session path can receive staged material.
Workspace and Git historyThe runtime must limit writes and control-plane influence.
Runtime and adapter baselinesWorkspace content must not replace reviewed controls.
Durable session stateAgent code must not own the authoritative record.
Audit log and sealOffline changes must cause verification failure in the signed region.
Host signing keyRuntime code and reports must not receive the private key.

Release assets belong to the separate CI/CD threat model.

Attacker capabilities

ActorCapability
Malicious repositorySupplies instructions, source, hooks, configuration, and executable files.
Compromised MCP serverReturns hostile content and tries to widen runtime access.
Compromised provider serviceReturns hostile output through an allowed provider connection.
Malicious provider outputCauses the agent to use tools or change files outside the approved scope.
Operator errorSelects a lower-assurance mode or an endpoint set that permits unnecessary access.
Same-user host malwareReads or changes files that the operator account can access.
Host-root attackerControls host state and can use the session signing key.

The safe-path controls address repository and runtime attackers. They do not protect a compromised operator account or host root.

Trust boundaries

BoundaryTrusted sideUntrusted sideImportant limit
Operator host to ColimaHost launcher and stateDedicated profile VMOne profile shares egress rules across its containers.
Operator host to Docker DesktopHost launcher and stateCompatibility containerDocker Desktop is not a dedicated Workcell VM.
Runtime to provider processRuntime controlsProvider CLI and model outputWorkcell does not isolate processes in one session from each other.
Host to injected materialHost validator and stagingMounted or copied session inputA crash can leave staged plaintext until cleanup.
Host to workspaceHost launcherRepository contentThe safe path masks mutable control files and Git paths.
Host to durable audit stateHost appender and signerSandboxed agentHost root can rewrite and sign state.

Abuse paths and controls

Abuse pathControl ownerProtected assetBlocked actionEvidence
Repository replaces provider controlsHost launcher and adapterRuntime baselineUse mutable repository control files as trusted baselineInvariant tests and adapter tests
Repository uses mutable native executablesRust syscall shimRuntime boundaryExecute protected native paths from mutable stateRust tests and container validation
Session receives a host socket or homeHost launcherHost credentials and control planeMount forbidden host paths on the safe pathDry-run invariant checks
Session changes Git hooks or configurationHost launcher and Rust shimWorkspace and Git historyUse mutable control paths for Git or unsafe Git overridesGit-policy tests and invariant checks
Session sends unrestricted Colima trafficColima egress helperHost and network boundaryStart a new connection outside the allowlist while final rules stay installedEgress helper tests and launch summary
Policy disables Colima enforcementHost launcherNetwork boundaryChange NETWORK_POLICY through injection policyInjection parser tests
Agent changes durable session historyHost audit appender and verifierAudit log and sealChange chained records without verification failureAudit-seal tests and session verify
Agent reads the signing keyHost launcherHost signing keyMount the private key into the runtimeMount-source checks and support-bundle tests

Versioned runtime profiles can add fixed endpoints. Operator policy can also add endpoints. Both inputs broaden the allowed set.

Residual risks

RiskResult
Colima rules are profile-wide.The last launch controls all active containers in that profile.
A Colima breakglass launch clears the profile rules.Existing strict containers lose Workcell egress enforcement.
Colima rule replacement is not atomic.A setup failure can leave active profile containers without default-deny rules.
A policy change keeps established connections.A connection can continue after the new endpoint set removes its destination.
Allowed host names resolve to shared IP addresses.Another host on the same IP can remain reachable.
Docker Desktop has no dedicated Workcell VM.It provides lower isolation than the strict target.
Docker Desktop has no Workcell allowlist.Host or Docker Desktop controls determine egress.
MCP servers and provider output remain untrusted.The agent can act on hostile content within its granted tools.
Audit signing uses a host key.Host root can rewrite a chain and create a new valid seal.
Initial records from the legacy audit have no chain.Signed verification does not protect that initial prefix.
Explicit lower-assurance modes remain available.The operator accepts their stated downgrade.

Do not run concurrent sessions with different complete endpoint sets in one Colima profile.

Exclusions

This model does not claim protection against these events:

  • A host-root compromise.
  • Same-user malware that can read operator-owned state.
  • A compromised provider service outside the Workcell runtime.
  • Security properties for a launch-blocked preview target.
  • Isolation between processes in one runtime container.

The unsafe-code checklist records each Rust unsafe class, its invariant, and its required review.

See the OWASP Agentic mapping for the application risk mapping.