fix(browser): preserve legacy strict SSRF alias

This commit is contained in:
Ayaan Zaidi
2026-04-14 12:50:02 +05:30
parent 024f4614a1
commit 213c36cf51
3 changed files with 13 additions and 1 deletions

View File

@@ -17,6 +17,7 @@ Docs: https://docs.openclaw.ai
- Doctor/plugins: cache external `preferOver` catalog lookups within each plugin auto-enable pass so large `agents.list` configs no longer peg CPU and repeatedly reread plugin catalogs during doctor/plugins resolution. (#66246) Thanks @yfge.
- Agents/local models: clarify low-context preflight hints for self-hosted models, point config-backed caps at the relevant OpenClaw setting, and stop suggesting larger models when `agents.defaults.contextTokens` is the real limit. (#66236) Thanks @ImLukeF.
- Browser/SSRF: restore hostname navigation under the default browser SSRF policy while keeping explicit strict mode reachable from config, and keep managed loopback CDP `/json/new` fallback requests on the local CDP control policy so browser follow-up fixes stop regressing normal navigation or self-blocking local CDP control. (#66386) Thanks @obviyus.
- Browser/SSRF: preserve explicit strict browser navigation mode for legacy `browser.ssrfPolicy.allowPrivateNetwork: false` configs by normalizing the legacy alias to the canonical strict marker instead of silently widening those installs to the default non-strict hostname-navigation path.
## 2026.4.14-beta.1

View File

@@ -321,6 +321,15 @@ describe("browser config", () => {
expect(resolved.ssrfPolicy).toEqual({ dangerouslyAllowPrivateNetwork: false });
});
it("preserves legacy explicit strict mode from allowPrivateNetwork=false", () => {
const resolved = resolveBrowserConfig({
ssrfPolicy: {
allowPrivateNetwork: false,
},
} as unknown as BrowserConfig);
expect(resolved.ssrfPolicy).toEqual({ dangerouslyAllowPrivateNetwork: false });
});
it("keeps allowlist-only browser SSRF policy strict by default", () => {
const resolved = resolveBrowserConfig({
ssrfPolicy: {

View File

@@ -149,7 +149,9 @@ function resolveBrowserSsrFPolicy(cfg: BrowserConfig | undefined): SsrFPolicy |
}
return {
...(resolvedAllowPrivateNetwork || dangerouslyAllowPrivateNetwork === false
...(resolvedAllowPrivateNetwork ||
dangerouslyAllowPrivateNetwork === false ||
allowPrivateNetwork === false
? { dangerouslyAllowPrivateNetwork: resolvedAllowPrivateNetwork }
: {}),
...(allowedHostnames ? { allowedHostnames } : {}),