Skip to content

feat: multi-tenant Phase 2 — egress/SSRF policy (AR-5) - #54

Merged
KeyCode17 merged 3 commits into
developfrom
feat/mt-phase2-egress
May 30, 2026
Merged

KeyCode17 merged 3 commits into
developfrom
feat/mt-phase2-egress

Conversation

@KeyCode17

Copy link
Copy Markdown
Owner

Summary

Phase 2 of the multi-tenant tier. Adds an always-on egress policy so a tenant's agent cannot be steered to forbidden destinations.

  • ras_validation::EgressPolicy — pure check(&Url): scheme allowlist (http/https), blocks loopback/private/link-local/cloud-metadata 169.254.169.254/localhost, denied ports (e.g. the CDP port), consumer allow/deny via DomainPattern. 10 unit tests.
  • navigate builtin gated through EgressPolicy::default() before touching the browser. 5 unit tests.
  • Bump 3.2.0 → 3.3.0.

Scope (deferred to Phase 2b, tracked)

CDP Fetch.requestPaused enforcement for 3xx redirects + JS window.location, and DNS-rebinding. This PR closes the primary vector (agent steered directly to metadata/localhost/file).

Test Plan

  • cargo test -p ras-validation -p ras-tools — 15 pass; cargo build --workspace clean; clippy clean; hooks green.

🤖 Generated with Claude Code

KeyCode17 and others added 3 commits May 30, 2026 09:19
…vate/metadata/port/domain blocking)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…rowser

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@KeyCode17
KeyCode17 merged commit 549b380 into develop May 30, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant