Repository navigation
Bubblewrap: cooperative proxy warning contradicts the schema 0.8+ private-namespace guarantee #970
Description
Description of the task
convert_wire_config in src/core/wxc_common/src/config_parser.rs emits a cooperative-model warning when a Bubblewrap config combines the builtin test proxy with defaultPolicy: block and an empty allowlist. It tells the user that well-behaved HTTP clients are denied at the proxy while raw-socket clients still reach the host network.
That is accurate pre-0.8, where the sandbox shares the host network and the proxy is purely cooperative. From schema 0.8 it is false: the Bubblewrap proxy path puts the sandbox in a private network namespace whose egress chain drops everything except the proxy, so no client escapes it. The warning now contradicts the guarantee the backend actually provides.
Proposed work:
- Gate the warning to pre-0.8 so it is not emitted under the strict-network contract.
- This needs a shared "is this schema 0.8+?" predicate.
bwrap_command.rsalready carries that logic for mode selection (uses_private_proxy_network), so hoist it into a single definition rather than writing a second copy — note thatwxc_commonmust not depend on anybackends/*crate, so the shared helper has to live inwxc_common. - Strengthen the existing pre-0.8 test, which currently asserts nothing about the warning at all and would pass even if the warning were deleted outright. Add a 0.8 twin asserting absence, plus a boundary test for the predicate.
Additional context
Raised by Branden Bonaby (@bbonaby) in review of #931 ("The existing config warning now contradicts this schema 0.8+ guarantee"). Deferred out of that PR to keep it free of config_parser.rs changes.
- Impact is a misleading diagnostic only. No enforcement behaviour depends on this warning, so there is no security or correctness exposure — the sandbox is isolated either way.
- Worth confirming at pickup whether the warning should be gated or rewritten to describe the 0.8 behaviour instead of suppressed. The reviewer offered both options.
- A working implementation existed briefly on
user/sodas/bwrap-proxy-egress-enforcementbefore being reverted. That commit was dropped in a rebase and is no longer reachable from any branch, so it cannot be cited by SHA.
Activity
Revert the Bubblewrap rule-install timeout headroom; tracked in #970
[-]Bubblewrap: rule-installation deadline has no margin for slirp readiness and process launches[/-][+]Bubblewrap: cooperative proxy warning contradicts the schema 0.8+ private-namespace guarantee[/+]github-actions commentedon Aug 20, 2026
Triage complete.
OS-Linux,Container-Process,Area-Executor-LXCNeeds-TriageremovedMaintainers: Comment
/investigateto check whether this issue or bug is valid against the most current code. Copilot will also produce a report with the changes that will be needed. For a small, unambiguous documentation or test fix, it may also create one draft PR.github-actions commentedon Aug 20, 2026
Triage complete.
Labels applied:
Area-Executor-LXC,Area-Build-Rust,Area-Test-ExecutorOwners assigned: Soham Das (@SohamDas2021) (already assigned, Bubblewrap/Linux),
@bbonaby(added — Linux proxy/networking, Rust build, and original reviewer who raised this)Needs-Triageremoved.Maintainers: Comment
/investigateto check whether this issue or bug is valid against the most current code. Copilot will also produce a report with the changes that will be needed. For a small, unambiguous documentation or test fix, it may also create one draft PR.github-actions commentedon Aug 20, 2026
This issue was already triaged — it carries
OS-Linux,Area-Executor-LXC,Area-Build-Rust,Area-Test-Executor,Container-Process, andIssue-Tasklabels, and is assigned to Soham Das (@SohamDas2021) and@bbonaby. No additional labels or assignments were needed;Needs-Triagewas not present.SohamDas2021 commentedon Sep 2, 2026
Tracked in ADO.