| Version | Supported | Notes |
|---|---|---|
| 1.x.x | ✅ | Current stable release |
| < 1.0 | ❌ | Pre-release versions not supported |
We take security vulnerabilities seriously. If you discover a security issue, please report it responsibly.
- Do NOT open a public GitHub issue for security vulnerabilities
- Email the maintainers directly at: security@openpass.dev
- Include the following in your report:
- Description of the vulnerability
- Steps to reproduce the issue
- Potential impact of the vulnerability
- Any suggested fixes (optional)
- Initial Response: Within 48 hours, we will acknowledge receipt of your report
- Status Update: We aim to provide a timeline for when a fix will be available
- Credit: With your permission, we will credit you in the security advisory (if public)
- Disclosure: We follow a coordinated disclosure process
The following are within scope for vulnerability reports:
- Encryption implementation (age X25519 + ChaCha20-Poly1305)
- Passphrase handling and storage
- Session management and keyring integration
- MCP server security (stdio and HTTP modes)
- Vault file format and entry encryption
The following are out of scope:
- Social engineering attacks
- Physical security of the user's machine
- Third-party dependencies (report to their respective maintainers)
No known vulnerabilities at this time.
For historical security advisories, see the Security Advisories page.
Ensure your vault directory has appropriate access controls:
# Restrict vault directory access (Unix-like systems)
chmod 700 ~/.openpass
chmod 600 ~/.openpass/identity.age- Uses process isolation; no network exposure
- Agent permissions controlled via
approvalModesetting
- Binds to
127.0.0.1only (localhost) — not exposed to network - Bearer token authentication required
- Token auto-generated and stored at
<vault>/mcp-token - Agent identified per-request via
X-OpenPass-Agentheader
Security recommendations for HTTP mode:
- Never expose the MCP server port to the network
- Rotate the bearer token periodically by deleting
<vault>/mcp-token(auto-regenerates) - Use
approvalMode: denyorapprovalMode: promptfor untrusted agents
# ~/.openpass/config.yaml
agents:
# Trusted local agents
claude-code:
allowedPaths: ["*"]
canWrite: true
approvalMode: none
# Untrusted or external agents
external-agent:
allowedPaths: ["public/*", "work/*"]
canWrite: false
approvalMode: deny| Variable | Purpose | Security Note |
|---|---|---|
OPENPASS_VAULT |
Override vault location | Ensure path has proper permissions |
- Keep backups: Regularly backup your vault directory
- Use strong passphrases: Use
openpass generate --length 32 --symbols - Lock sessions: Use
openpass lockwhen leaving your terminal - Review agent permissions: Only grant
canWrite: trueto trusted agents - Rotate tokens: Periodically rotate MCP bearer tokens in HTTP mode
- Secure your Git repository: If using Git sync, ensure your remote is secure
OpenPass uses age for encryption:
- Key Exchange: X25519 (Curve25519 elliptic curve Diffie-Hellman)
- Encryption: ChaCha20-Poly1305 (authenticated encryption)
- Identity File: Encrypted with the identity's own public key, protected by scrypt (passphrase)
Each vault entry is encrypted individually as a standalone .age file, ensuring:
- No compound encryption failures
- Efficient partial access patterns
- Git history contains only ciphertext
For non-security issues, please use the public issue tracker.