| Version | Supported |
|---|---|
| 1.x.x | ✅ |
If you discover a security vulnerability in this project, please report it responsibly:
- Do not open a public GitHub issue for security vulnerabilities
- Email the maintainer directly with details of the vulnerability
- Include steps to reproduce the issue
- Allow reasonable time for a fix before public disclosure
This project implements several security measures:
- All user inputs are validated before processing
- Path parameters are checked for traversal attacks (
../, absolute paths) - Query parameters have length limits and type checking
Multi-layer defense in src/security_utils.py:
- Null byte detection
- Path normalization
- Absolute path rejection
- Parent directory traversal blocking
- Symlink resolution boundary checking
- Non-root user execution (
mcpuser, uid 1000) CAP_DROP: ALLcapability restrictionsno-new-privilegessecurity option- Read-only vault mount (
:ro)
- All secrets via environment variables
- No hardcoded credentials in source code
.gitignoreexcludes credential files
Run security tests:
# Unit tests for path traversal
pytest tests/test_security_path_traversal.py -v
# Password/credential safety tests
pytest tests/test_security_passwords.py -v
# Bandit security scan
bandit -r src/ -llDependencies are intentionally minimal to reduce attack surface:
mcp>=1.0.0- MCP protocol (Anthropic)asyncpg>=0.29.0- PostgreSQL driver (parameterized queries)pgvector>=0.3.0- Vector operationsvoyageai>=0.3.0- Embedding API clientwatchdog>=4.0.0- File system eventsloguru>=0.7.2- Logging
All dependencies are from well-maintained, reputable sources.