vestige/SECURITY.md
Sam Valladares 29130c3068 fix: accurate science claims, security docs, remove hardcoded path
## Changes

### README.md
- Fix FSRS-6 formula: power law (not exponential Ebbinghaus)
- Correct formula: R(t,S) = (1 + factor × t/S)^(-w₂₀)
- Honest "The Science" table showing what's fully implemented vs inspired
- Added / indicators for implementation accuracy
- Transparency note about honest marketing

### demo.sh
- Remove hardcoded /Users/entity002 path (security/privacy)
- Use relative path with fallback: ${VESTIGE:-$(dirname "$0")/...}

### SECURITY.md (new)
- Document trust model and security boundaries
- Explain data storage locations
- List input validation measures
- Security contact process

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 20:29:37 -06:00

2.1 KiB

Security Policy

Supported Versions

Version Supported
1.0.x

Reporting a Vulnerability

If you discover a security vulnerability in Vestige, please report it responsibly:

  1. DO NOT open a public GitHub issue
  2. Email the maintainer directly (see GitHub profile)
  3. Include:
    • Description of the vulnerability
    • Steps to reproduce
    • Potential impact
    • Suggested fix (if any)

You can expect a response within 48 hours.

Security Model

Trust Boundaries

Vestige is a local MCP server designed to run on your machine with your user permissions:

  • Trusted: The MCP client (Claude Code/Desktop) that connects via stdio
  • Untrusted: Content passed through MCP tool arguments (validated before use)

What Vestige Does NOT Do

  • Make network requests (except first-run model download from Hugging Face)
  • Execute shell commands
  • Access files outside its data directory
  • Send telemetry or analytics
  • Phone home to any server

Data Storage

All data is stored locally in SQLite:

Platform Location
macOS ~/Library/Application Support/com.vestige.core/vestige.db
Linux ~/.local/share/vestige/core/vestige.db
Windows %APPDATA%\vestige\core\vestige.db

Note: Data is stored in plaintext. If you need encryption at rest, use OS-level encryption (FileVault, BitLocker, LUKS).

Input Validation

All MCP tool inputs are validated:

  • Content size limit: 1MB max
  • Query length limit: 1000 characters
  • FTS5 queries are sanitized to prevent injection
  • All SQL uses parameterized queries (params![] macro)

Dependencies

We use well-maintained dependencies and run cargo audit regularly. Current status:

  • Vulnerabilities: 0
  • Warnings: 2 (unmaintained transitive dependencies with no known CVEs)

Security Checklist

  • No hardcoded secrets
  • Parameterized SQL queries
  • Input validation on all tools
  • No command injection vectors
  • No unsafe Rust code
  • Dependencies audited