Please do not open a public GitHub issue for security vulnerabilities.
Report privately via GitHub's private vulnerability reporting:
- Go to the repository's Security tab → Report a vulnerability, or
- Use https://github.com/dotKa/claude-switchboard/security/advisories/new.
Include: affected version, steps to reproduce, impact, and any suggested fix. We aim to acknowledge reports within 72 hours and to release a fix or mitigation within 30 days for confirmed issues, coordinated with you on disclosure timing.
Suitable reports include anything that could let a website, another extension, or a local attacker read or steal stored sessionKey values, trigger unintended account switches, inject content into claude.ai or the extension UI, or exfiltrate any extension data.
Only the latest release is supported with security fixes. Pre-1.0, that's the newest v0.x tag.
What must be protected. Each saved account's claude.ai sessionKey is bearer credentials: whoever has it is that account to claude.ai. It is the extension's crown jewel.
Assets and handling:
- Session keys are stored only in
chrome.storage.local(never synced, never inlocalStorage, never in web-accessible resources, never in source or release artifacts). - Exported data including sessions is encrypted locally with a user-supplied passphrase; unencrypted exports omit secrets by default.
- The extension UI receives a secret-free view of state from the background service worker; popup/options pages never handle session values.
- No network egress except to
claude.aiitself. No third-party scripts, no remote code, no dynamiceval. - Extension pages are protected by the MV3 default CSP; messages into the background are validated against the shared request/response contract (
src/shared/messages.ts).
Out of scope / your side of the street:
- Device compromise. Malware with user-level access to your Chrome profile can read extension storage, as it can read any local browser data. Keep your OS and Chrome updated, use a locked screen, and consider OS account encryption.
- Other extensions. Any extension you install with broad permissions can read cookies and page content. Audit your installed extensions; remove ones you don't trust.
- Anthropic's service. Outages, endpoint changes, or compromise of claude.ai itself are Anthropic's domain. Session expiry/revocation is handled by claude.ai, not by us.
- Phishing and exports. If you send someone your export or your
sessionKey, the extension can't help. Never share either.
Design consequence: an extension vulnerability that leaks secrets from chrome.storage.local is a critical bug here. Please err on the side of reporting.
- Never log, sync, or serialize
AccountSecretvalues outside encrypted export. - Keep the
secretsstorage key touched by background code only. - Validate all incoming
runtime.onMessagepayloads against the shared contracts before acting. - Do not add permissions without a justification in
docs/store-listing.md.