Repository navigation
v0.7.2 — Comprehensive Security Fixes
·
52 commits
to main
since this release
Security Hardening (Comprehensive Audit)
HIGH
- H1: Path traversal on graph export — �ault.py:export_graph_html validates destination stays within storage directory
- H2: Prompt injection trust model — MCP tool descriptions document that memory content is untrusted data
MEDIUM
- M1: HTML injection — graph_visualizer.py escapes title via html.escape()
- M2: Command injection — Windows daemon startup uses environment variables instead of string interpolation
- M3: LLM extraction trust model — System/user message split isolates extraction rules from user content
- M4: Template injection — _substitute_templates recursion depth limited to 10
- M5: Path traversal — CLI obsidian export validates output paths stay within export directory
- M6: Dependency pinning — Minimum versions for chromadb, sentence-transformers, httpx, openai, pyyaml
LOW
- L1: Rate limiter memory — Sweep every 200 requests + IP count cap (10,000)
- L2: UUID validation — MCP handlers validate memory_id format
- L3: Path validation docstring —
esolve_vault_path documentation - L5: API key security — README documents OpenAI API key handling
Other Changes
- Dependency consolidation (sentence-transformers, openai, sqlite-vec now core)
- Knowledge Graph Visualizer (standalone HTML, CLI, MCP, REST)