fix(browser): add SSRF policy and navigation guards#891
Draft
badgerbees wants to merge 8 commits intonextlevelbuilder:devfrom
Draft
fix(browser): add SSRF policy and navigation guards#891badgerbees wants to merge 8 commits intonextlevelbuilder:devfrom
badgerbees wants to merge 8 commits intonextlevelbuilder:devfrom
Conversation
fix(security): cross-group session leak + auto-inject scoping + vault graph + UI fixes
Release: vault enrich filter, stop bug, graph, tests, security fixes
…o browser-ssrf-policy
…oclaw into browser-ssrf-policy
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR hardens the GoClaw browser tool with an explicit SSRF policy so browser-driven navigation is safe by default and still usable for local development when intentionally configured. It adds a shared navigation guard for
openandnavigate, re-checks the final page URL after navigation settles, and applies the same validation after interaction-driven navigation so redirects cannot bypass the policy.By default, localhost, private IPs, and internal hostnames are blocked. If a deployment genuinely needs local or internal browser targets, it can opt in through the new browser SSRF policy config with explicit host allowlists or private-network access. The patch also wires the policy through startup, documents the new browser behavior in the tool surface, and adds focused regression tests for allowed and blocked navigation targets.
Type
main)Target Branch
dev
Checklist
go build ./...passesgo build -tags sqliteonly ./...passes (if Go changes)go vet ./...passesgo test -race ./...cd ui/web && pnpm build(if UI changes)$1, $2(no string concat)internal/upgrade/version.go(if new migration)Test Plan
go test ./pkg/browsergo test ./cmd