mirror of
https://github.com/samvallad33/vestige.git
synced 2026-04-25 00:36:22 +02:00
## 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>
2.1 KiB
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:
- DO NOT open a public GitHub issue
- Email the maintainer directly (see GitHub profile)
- 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