Skip to content

LvcidPsyche/auto-browser

v1.3.1 Security

This release includes 2 security fixes for security teams reviewing exposed deployments.

✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →
This release patches 2 known CVEs

Topics

ai-agent ai-agents browser-automation claude docker fastapi
+6 more
llm local-first mcp novnc playwright self-hosted

Affected surfaces

auth

Summary

AI summary

Download capture tasks are prevented from being garbage‑collected mid‑flight, improving reliability.

Full changelog

Changed

  • browser_manager.py is now a pure facade + composition root (1,284 → 769 lines). The domain logic that remained after the v1.2 service extraction moved into app/browser/services/ (fork / shadow-browse / network log → sessions & diagnostics; settle / action verification → actions; platform detection + auth-state info → auth profiles), and ~50 delegation shims with zero callers were deleted. The public API and the private seams that tests patch are unchanged.
  • Fork state exports are encrypted at rest. fork_session now routes its storage-state export through AuthStateManager, so exported cookies/localStorage are Fernet-encrypted whenever AUTH_STATE_ENCRYPTION_KEY is set (previously always plaintext JSON, regardless of settings).
  • Shadow-browse state never touches disk. enable_shadow_browse hands the exported storage state to the headed context as an in-memory dict instead of writing a plaintext temp file.

Fixed

  • Download capture tasks can no longer be garbage-collected mid-flight. Page download handlers now go through spawn_background_task; the event loop keeps only weak task references, so the old bare asyncio.create_task could silently drop a download and its audit record.
  • Shadow-browse failures roll back cleanly. If navigation in the headed clone fails, the headed Chromium process is closed and the half-registered session is removed (previously both leaked until manual cleanup).
  • Page listeners survive object-id reuse. Sessions track listener-attached pages in a WeakSet instead of raw id() values, so a recycled id can no longer cause a new page to skip listener attachment.
  • shutdown() is idempotent (the Playwright handle is cleared after stop), and _assert_url_allowed matches host patterns case-insensitively on all platforms.

Security Fixes

  • Fork state exports are encrypted at rest when `AUTH_STATE_ENCRYPTION_KEY` is set.
  • Shadow‑browse state no longer touches disk; it uses an in‑memory dict.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track LvcidPsyche/auto-browser

Get notified when new releases ship.

Sign up free

About LvcidPsyche/auto-browser

Give your AI agent a real browser — with a human in the loop. Open-source MCP-native browser agent.

All releases →

Beta — feedback welcome: [email protected]