Skip to content

v0.7.16 — isolate per-sandbox egress attribution

Choose a tag to compare

@sumansaurabh sumansaurabh released this 18 Jul 07:38
d8e49c3

Flips isolate egress from fail-closed deny-all (v0.7.15) to enforced per-sandbox allowlists via a per-slot workerd service pool (PR #340).

Still off by default (SB_ENABLE_ISOLATE=false) — activates nothing until an operator opts in.

Highlights:

  • Group config pre-declares K per-slot egress services (EGRESS_0..); each egressing sandbox gets a slot and binds globalOutbound to that static service only — attribution is structural and unforgeable.
  • Pool size via SB_ISOLATE_EGRESS_POOL_SIZE (default 64). Exhaustion / bind failure falls back to fail-closed EGRESS_DENY (logged, never silent).
  • SSRF IP-block retained (loopback / link-local / RFC1918 / metadata). Outbound is always HTTPS at the host proxy.

Known limitations (safe by default): concurrent egress-enabled isolates per tenant capped by pool size; no per-sandbox byte metering yet; plaintext-HTTP-only destinations unreachable. Jail/hardening follow-ups from v0.7.15 still apply.

What's Changed

  • feat(isolate): per-sandbox egress attribution via per-slot service pool by @sumansaurabh-slice in #340
  • chore(deps): bump github.com/containerd/containerd from 1.7.29 to 1.7.34 in #321
  • chore(deps): bump github.com/containerd/typeurl/v2 from 2.1.1 to 2.3.0 in #322
  • chore(deps): bump oras.land/oras-go/v2 from 2.6.1 to 2.6.2 in #323
  • chore(deps): bump github.com/vishvananda/netlink from 1.3.0 to 1.3.1 in #315
  • chore(deps): update tokio-tungstenite requirement from 0.29 to 0.30 in /sdk/rust in #318
  • chore(deps-dev): bump org.junit.jupiter:junit-jupiter from 6.1.1 to 6.1.2 in /sdk/java in #320
  • chore(deps-dev): bump typescript from 6.0.3 to 7.0.2 in /sdk/typescript in #316
  • chore(deps-dev): bump prettier from 3.9.4 to 3.9.5 in /docs in #319
  • chore(deps): bump typescript from 5.9.3 to 7.0.2 in /docs in #314

Full Changelog: v0.7.15...v0.7.16

What's Changed

  • feat(isolate): per-sandbox egress attribution via per-slot service pool by @sumansaurabh in #340
  • chore(deps): bump oras.land/oras-go/v2 from 2.6.1 to 2.6.2 by @dependabot[bot] in #323
  • chore(deps): bump github.com/containerd/typeurl/v2 from 2.1.1 to 2.3.0 by @dependabot[bot] in #322
  • chore(deps): bump github.com/containerd/containerd from 1.7.29 to 1.7.34 by @dependabot[bot] in #321
  • chore(deps): update tokio-tungstenite requirement from 0.29 to 0.30 in /sdk/rust by @dependabot[bot] in #318
  • chore(deps-dev): bump prettier from 3.9.4 to 3.9.5 in /docs by @dependabot[bot] in #319
  • chore(deps-dev): bump org.junit.jupiter:junit-jupiter from 6.1.1 to 6.1.2 in /sdk/java by @dependabot[bot] in #320
  • chore(deps-dev): bump typescript from 6.0.3 to 7.0.2 in /sdk/typescript by @dependabot[bot] in #316
  • chore(deps): bump github.com/vishvananda/netlink from 1.3.0 to 1.3.1 by @dependabot[bot] in #315
  • chore(deps): bump typescript from 5.9.3 to 7.0.2 in /docs by @dependabot[bot] in #314

Full Changelog: v0.7.15...v0.7.16