Skip to content

Threat model

mvm is designed for running code that may be buggy, generated, or actively hostile while keeping host access explicit and auditable.

  • Host filesystem outside explicit shares.
  • Host credentials and local secret stores.
  • Build provenance and signed execution plans.
  • Runtime audit records.
  • Other workloads on the same host.
  • Snapshot and cold-mode state.
AttackerExamplesExpected control
Malicious guest codeGenerated scripts, dependency install hooks, test payloads.MicroVM isolation, guest profile gates, file/network policy.
Confused SDK callerAccidental broad mount, plaintext secret in args.Safer examples, claim lint, explicit policy APIs.
Malicious artifact sourceMutable OCI tag, unpinned flake input.Nix pinning, digest verification, signed plans.
Network target abuseMetadata endpoint, DNS rebinding, wrong host.Deny-by-default policy and future L7 enforcement.

The host is trusted. The builder VM, selected hypervisor/backend, mvmctl, guest agent, local key material, and Nix inputs form the practical TCB for a local run.

If the host is compromised, mvm cannot protect guest secrets or audit keys from that host.

  • Defending against a malicious host.
  • Running mutually distrusting tenants in one guest.
  • Treating Docker fallback as microVM isolation.
  • Claiming universal OCI compatibility before digest-pinned ingest is shipped.
  • Claiming secret non-leakage for manual guest-visible secret files.
  • Label Planned and Preview behavior honestly.
  • Prefer Nix-built artifacts and pinned inputs.
  • Keep OCI examples digest-pinned when used for production posture.
  • Use secret references instead of plaintext credentials.
  • Name backend-specific limits for snapshots and cold mode.
  • Do not use broad phrases such as “impossible to leak” or “instant boot.”