| Version | Supported |
|---|---|
| 1.5.x | ✅ Current release |
| < 1.5 | ❌ No longer supported |
If you discover a security vulnerability in LeIndex, please do not open a public issue.
Instead, report it privately:
- Email: Send details to the maintainers via GitHub Security Advisories
- Include:
- Description of the vulnerability
- Steps to reproduce
- Potential impact
- Suggested fix (if any)
We will acknowledge receipt within 48 hours and aim to provide a fix or mitigation within 7 days for critical issues.
LeIndex is designed with the following security principles:
- LeIndex runs entirely on your machine. No code or index data is sent to external servers.
- All indexing and search operations are performed locally.
- The
leindex serveHTTP server can auto-discover project databases, but this is disabled by default. - You must explicitly set
LEINDEX_DISCOVERY_ROOTSto enable it. - Sensitive directories are automatically excluded from scanning:
- Cryptographic materials:
/.ssh/,/.gnupg/,/.config/gnupg/ - Cloud credentials:
/.aws/,/.azure/,/.gcloud/,/.kube/,/.docker/ - Secret management:
/.op/,/.vault/,/.1password/ - Build artifacts:
/node_modules/,/target/,/.git/
- Cryptographic materials:
- Paths must be absolute and validated for injection patterns.
- Files must be regular files (symlinks are rejected).
- Only
.db,.sqlite, or.sqlite3extensions are accepted. - All SQL operations use parameterized queries.
- The MCP server binds to
127.0.0.1by default (localhost only). - Edit operations (
leindex_edit_apply,leindex_rename_symbol) include dry-run/preview modes to prevent accidental changes. - Token budgets are bounded and validated to prevent memory exhaustion.
We follow coordinated disclosure. Once a fix is released, we will:
- Credit the reporter (unless anonymity is requested)
- Publish a security advisory on GitHub
- Include the fix in the next release with a changelog entry