From d6087422a7e157ba4489aa5b915a55a14de24086 Mon Sep 17 00:00:00 2001 From: KEXNA <91727108+kexinoh@users.noreply.github.com> Date: Fri, 18 Sep 2026 18:14:49 +0800 Subject: [PATCH 1/2] fix(programbench): enforce offline Docker workspaces Co-authored-by: openhands --- benchmarks/programbench/run_infer.py | 18 +++++++----------- vendor/software-agent-sdk | 2 +- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/benchmarks/programbench/run_infer.py b/benchmarks/programbench/run_infer.py index 93771818e..efabcbbfb 100644 --- a/benchmarks/programbench/run_infer.py +++ b/benchmarks/programbench/run_infer.py @@ -216,14 +216,10 @@ def prepare_workspace( * ``--network none`` blocks the SDK from reaching the agent-server because Docker port mappings need a network interface. * ``docker network create --internal`` blocks ``-p`` port mappings. - * The robust answer is in-container egress filtering (iptables in an - init step), which needs ``CAP_NET_ADMIN`` and is **future work**. - - For now we leave ``network=None`` (default bridge). The system prompt - explicitly tells the agent it has no internet, and the cleanroom image - ships with everything the task needs locally. Agents that try to call - out anyway will produce non-leaderboard-faithful runs — that limitation - is documented in the README and tracked in AGENTS.md. + + The SDK's ``network_isolation="offline"`` bridge keeps the local + control port available while disabling Docker's outbound masquerading. + The cleanroom image ships with everything the task needs locally. """ details = self.metadata.details or {} forward_env = get_acp_forward_env(self.metadata.agent_type, forward_env) @@ -243,9 +239,9 @@ def prepare_workspace( ), target=target, # type: ignore[arg-type] forward_env=forward_env or [], - # See docstring above. Strict offline isolation is follow-up - # work; today we rely on the prompt + cleanroom image. - network=None, + # Keep the control port reachable while disabling bridge + # masquerading so the agent cannot reach the public internet. + network_isolation="offline", ) elif self.metadata.workspace_type == "remote": raise NotImplementedError( diff --git a/vendor/software-agent-sdk b/vendor/software-agent-sdk index 43376f186..dae0e39a6 160000 --- a/vendor/software-agent-sdk +++ b/vendor/software-agent-sdk @@ -1 +1 @@ -Subproject commit 43376f1868ffd702746080714a59c16d3f69ec12 +Subproject commit dae0e39a69e76e029cb60094d51a1252cecc70c9 From 99cd5d22afd239f4a86243fa2677031a59424631 Mon Sep 17 00:00:00 2001 From: KEXNA <91727108+kexinoh@users.noreply.github.com> Date: Fri, 18 Sep 2026 18:19:04 +0800 Subject: [PATCH 2/2] Use isolated SDK workspace networking --- vendor/software-agent-sdk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/software-agent-sdk b/vendor/software-agent-sdk index dae0e39a6..5d33e7991 160000 --- a/vendor/software-agent-sdk +++ b/vendor/software-agent-sdk @@ -1 +1 @@ -Subproject commit dae0e39a69e76e029cb60094d51a1252cecc70c9 +Subproject commit 5d33e7991f8185d9bb439619c1c3cd5364090f8c