Enforce and disclose guest-only microVM egress
Open
@JAORMX is already working on this.
Since Aug 14, 2026.
enhancement
- Dominant language
- Go
- Stars
- 152
- Forks
- 16
- Avg merge
- 14h 48m
- Merged PRs (30d)
- 536
Description
Parent: #526
Outcome
Every microVM starts with an explicitly configured go-microvm network provider and enforces the selected guest-only egress policy without affecting or misrepresenting host-side provider, MCP, WebFetch/WebSearch, hook, OCI, or telemetry traffic.
Scope
- Always configure the network provider; never rely on libkrun implicit networking.
- Reuse go-microvm's hosted provider and EgressPolicy integration.
- Close the current IPv6 parity gap by disabling guest IPv6 initially or implementing equivalent IPv6 filtering.
- Enforce deny-all and hostname/port/protocol allowlists fail-closed.
- Block host metadata, loopback, link-local, private ranges, the driver control plane, and unrelated hosted services unless explicitly required.
- Define DNS, wildcard, CNAME, rebinding, established-connection, and cache-expiry semantics.
- Surface guest and host egress posture separately in session/UI diagnostics.
Acceptance
- Failure to configure networking aborts VM creation; it never selects an implicit or allow-all fallback.
- IPv4/IPv6 literals, AAAA, DNS rebinding, CNAME, wildcard/shared-IP, DoH/DoT, metadata, link-local, fragments, and established-connection behavior are exercised against real VMs.
- Allowed destinations work and denied destinations fail from guest processes on Linux and macOS.
- Host-side network tools continue under their independent policy and are never described as covered by guest egress rules.
- Egress denials are observable without logging secret data or unbounded destination labels.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.