fix(security): harden sandbox browser network defaults

This commit is contained in:
Peter Steinberger
2026-02-21 14:01:40 +01:00
parent cf82614259
commit f48698a50b
19 changed files with 224 additions and 5 deletions

View File

@@ -714,6 +714,45 @@ export function collectSandboxDangerousConfigFindings(cfg: OpenClawConfig): Secu
}
}
const browserExposurePaths: string[] = [];
const defaultBrowser = resolveSandboxConfigForAgent(cfg).browser;
if (
defaultBrowser.enabled &&
defaultBrowser.network.trim().toLowerCase() === "bridge" &&
!defaultBrowser.cdpSourceRange?.trim()
) {
browserExposurePaths.push("agents.defaults.sandbox.browser");
}
for (const entry of agents) {
if (!entry || typeof entry !== "object" || typeof entry.id !== "string") {
continue;
}
const browser = resolveSandboxConfigForAgent(cfg, entry.id).browser;
if (!browser.enabled) {
continue;
}
if (browser.network.trim().toLowerCase() !== "bridge") {
continue;
}
if (browser.cdpSourceRange?.trim()) {
continue;
}
browserExposurePaths.push(`agents.list.${entry.id}.sandbox.browser`);
}
if (browserExposurePaths.length > 0) {
findings.push({
checkId: "sandbox.browser_cdp_bridge_unrestricted",
severity: "warn",
title: "Sandbox browser CDP may be reachable by peer containers",
detail:
"These sandbox browser configs use Docker bridge networking with no CDP source restriction:\n" +
browserExposurePaths.map((entry) => `- ${entry}`).join("\n"),
remediation:
"Set sandbox.browser.network to a dedicated bridge network (recommended default: openclaw-sandbox-browser), " +
"or set sandbox.browser.cdpSourceRange (for example 172.21.0.1/32) to restrict container-edge CDP ingress.",
});
}
return findings;
}