Skip to content

Security: jonathancecilj/Prism

Security

SECURITY.md

Security Policy

Supported Versions

Version Supported
1.0.x
< 1.0

Reporting a Vulnerability

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.

Security Model

Prism acts as a multiplexing browser for AI services. Security is paramount to ensure user data isolation and application integrity.

1. Webview Isolation

Each AI service (ChatGPT, Gemini, Claude, Grok) runs in a separate Electron webview with its own partition:

  • persist:chatgpt
  • persist:gemini
  • persist:claude
  • persist:grok

This strict partitioning ensures that cookies, local storage, and session data are never shared between services.

2. Process Hardening

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.

3. Content Security Policy (CSP)

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).

4. IPC Security

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 remote module is not used.

5. Dependency Management

  • All dependencies are pinned to exact versions in package.json to prevent supply chain attacks via auto-updates.
  • Regular npm audit checks are performed.

There aren’t any published security advisories