| Version | Supported |
|---|---|
| 1.0.x | ✅ |
| < 1.0 | ❌ |
Please report vulnerabilities by opening an issue in the GitHub repository or contacting the maintainer directly. We aim to address all security vulnerabilities within 48 hours.
Prism acts as a multiplexing browser for AI services. Security is paramount to ensure user data isolation and application integrity.
Each AI service (ChatGPT, Gemini, Claude, Grok) runs in a separate Electron webview with its own partition:
persist:chatgptpersist:geminipersist:claudepersist:grok
This strict partitioning ensures that cookies, local storage, and session data are never shared between services.
The application adheres to dangerous-function mitigation best practices:
- Sandbox: Enabled. Renderer processes are sandboxed.
- Context Isolation: Enabled (
contextIsolation: true). Preload scripts run in a separate context from the webpage. - Node Integration: Disabled (
nodeIntegration: false). Web content cannot access Node.js primitives directly.
We enforce a strict CSP in the main renderer window:
default-src 'self': Only load local resources by default.script-src 'self': No external scripts except trusted CDNs (Tailwind).style-src 'self': No external styles except trusted CDNs (Google Fonts).
Communication between the renderer (UI) and webviews (AI Services) uses ipc-message and sendToHost.
- Input Validation: All messages (broadcasts, scroll sync) are validated for type and length before processing.
- No Remote Module: The dangerous
remotemodule is not used.
- All dependencies are pinned to exact versions in
package.jsonto prevent supply chain attacks via auto-updates. - Regular
npm auditchecks are performed.