Skip to content

fix(security): isolate production browser walks - #53

Open
FranciscoMateusVG wants to merge 1 commit into
masterfrom
aperture-4iz7v-profile-hygiene
Open

fix(security): isolate production browser walks#53
FranciscoMateusVG wants to merge 1 commit into
masterfrom
aperture-4iz7v-profile-hygiene

Conversation

@FranciscoMateusVG

Copy link
Copy Markdown
Owner

Summary

  • run the shared Mac Mini playwright-mini launcher in Playwright MCP isolated mode
  • require a null-session preflight before every production walk
  • fail closed on inherited sessions and require sign-out/null-session/browser-close cleanup
  • limit walk authentication to the allowlisted BEADS identity; customer accounts require explicit operator authorization
  • record identity metadata only, never browser credentials or session material

Runtime contract changes

  • Playwright Mini profile lifetime — production browser state is now in-memory and discarded when the browser closes instead of persisting in the shared workspace profile.
    • Category: authentication/session infrastructure
    • Consumers affected: agents and subagents using playwright-mini for production verification
    • Migration plan: none; each walk must authenticate its declared allowlisted identity after the mandatory null-session preflight
  • Production-walk session gate — a walk cannot proceed unless /api/auth/get-session is null; unexpected sessions are signed out and rechecked, and cleanup repeats the null-session assertion.
    • Category: authentication gate
    • Consumers affected: verify-user-path production walks
    • Migration plan: BEADS walk notes record metadata-only preflight/final results

Security finding

aperture-4iz7v traced a real customer's authenticated session from a 2026-07-23 verification into the shared persistent browser profile, where a different agent inherited it on 2026-07-27. The session was contained by sign-out. This patch removes the persistence mechanism and codifies fail-closed lifecycle checks.

Validation

  • bash -n scripts/playwright-mcp-mini.sh
  • remote playwright-mcp --help confirms --isolated is supported
  • static assertions confirm the launcher flag and every required verify-user-path control
  • git diff --check

Base branch note

This repository's canonical branch is master (origin/HEAD -> origin/master); origin/main does not exist, so the PR targets master.

Run playwright-mini with an in-memory profile and require null-session preflight plus fail-closed cleanup for production verification. This prevents one agent from inheriting another user's authenticated browser state.
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