This release includes 1 security fix for security teams reviewing exposed deployments.
Topics
Affected surfaces
Summary
AI summaryUpdates 📦 Misc, ✨ Features, and 🐛 Bug Fixes across a mixed release.
Full changelog
What's New
✨ Features
-
Burstable QoS via
resourceRequests— new optionalresourceRequestsfield onCreateSandboxRequestlets callers set Kubernetes resource requests separately from limits, enabling Burstable QoS class sandboxes. Fully backward compatible: omitting the field preserves existingrequests == limits(Guaranteed QoS) behavior. API spec and Pydantic schema updated; server-side threading through providers will follow. (#1074) -
Egress sidecar env injection —
OPENSANDBOX_EGRESS_*prefixed environment variables inCreateSandboxRequest.envare now automatically routed to the egress sidecar container instead of the main sandbox container. This allows configuring egress behavior (e.g. transparent MITM proxy) without API/SDK changes — just use the existingenvfield with the prefix convention. Reserved internal vars (OPENSANDBOX_EGRESS_RULES,OPENSANDBOX_EGRESS_MODE,OPENSANDBOX_EGRESS_TOKEN) are blocked with HTTP 400. (#1069) -
Bubblewrap (bwrap) filesystem isolation for execd — new
pkg/isolation/package adds a bubblewrap-based filesystem isolation layer for execd. Includes bwrap argv builder, startup probe, upper directory management, seccomp profile loading, and env var overrides for isolation flags. bwrap is now statically compiled (musl-gcc) and injected via init container alongside execd. CI smoke test validates the build on ubuntu-latest. Diff/commit support deferred to Phase 2 (returns 503). (#1008)
🐛 Bug Fixes
-
gVisor + networkPolicy now rejected — gVisor lacks the iptables
nattable required by the egress sidecar's DNS redirect. Previously this combination silently failed (egress sidecar CrashLoopBackOff). Now returns HTTP 400 with a clear error message. Compatibility matrix and troubleshooting docs updated. (#1070) -
Internal K8s proxy endpoint resolution fixed —
resolve_internal=Truewas not honored for Kubernetes server-proxy endpoint resolution, causing requests to go through gateway ingress formatting instead of returning the sandbox pod IP directly. Fixed with regression test coverage. (#1107) -
Egress sidecar runtime volume always mounted — the
/opt/opensandboxshared volume is now mounted on the egress sidecar unconditionally, not only whencredential_proxy_enabled=True. Previously, enabling manual MITM (OPENSANDBOX_EGRESS_MITMPROXY_TRANSPARENT=truevia env) without credential proxy meant the CA cert was written to an unmounted filesystem, causing sandbox startup timeouts. (#1072)
🔒 Security
- Dependency upgrades for CVE remediation — pinned
fastapi>=0.137.0,starlette>=1.3.1,python-multipart>=0.0.30to fix hostname poisoning, form DoS, parameter smuggling, and method dispatch vulnerabilities. Also bumpedjs-yamlto 4.2.0 (quadratic DoS) andviteto 6.4.3 (server.fs.denybypass, NTLMv2 hash disclosure). Addresses ~16 open Dependabot alerts. (#1102)
📦 Misc
- Docs: streamlined
server/AGENTS.mdandDEVELOPMENT.md, addedserver/CLAUDE.mdsymlink. (#1100)
👥 Contributors
Thanks to these contributors ❤️
- @Gujiassh
- @Pangjiping
- PyPI: opensandbox-server==0.2.1
- Docker Hub: opensandbox/server:v0.2.1
- Aliyun Registry: sandbox-registry.cn-zhangjiakou.cr.aliyuncs.com/opensandbox/server:v0.2.1
Security Fixes
- Dependency upgrades: fastapi>=0.137.0, starlette>=1.3.1, python-multipart>=0.0.30, js-yaml 4.2.0, vite 6.4.3 (addresses multiple CVEs)
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
Related context
Earlier breaking changes
- vpython/sandbox/v0.1.14 Removes `CredentialMatch.ports`; port now derived from scheme.
- vjava/sandbox/v1.0.16 Removes CredentialMatch.ports; port derived from scheme instead.
- vdocker/egress/v1.1.4 `Match.Ports` field removed from Credential Vault bindings; ports derived from scheme.
- vdocker/egress/v1.1.4 'X-Forwarded-Proto' is trusted only from configured proxy CIDRs.
- vdocker/egress/v1.1.4 Credential Vault requires `dns+nft` enforcement for egress connections.
Beta — feedback welcome: [email protected]