If you discover a security vulnerability in KeyGate, please report it responsibly.
DO NOT open a public GitHub issue for security vulnerabilities.
Instead, email: security@keygate.dev
Include:
- Description of the vulnerability
- Steps to reproduce
- Potential impact
- Suggested fix (if any)
We will respond within 48 hours and aim to release a fix within 7 days of confirmation.
- Vendor admin keys are encrypted at rest in the database
- Provisioned API keys are shown exactly once during provisioning and never stored
- All actions are logged in an immutable audit trail
- Authentication uses JWT with configurable expiry
- KeyGate does not proxy or monitor actual LLM API calls
- Once a key is shared with a developer, KeyGate cannot prevent misuse until revocation
- Budget limits are enforced by the vendor, not by KeyGate
When deploying KeyGate in production:
- Use a strong
SECRET_KEY— generate withopenssl rand -hex 32 - Set
ENCRYPTION_KEY— for encrypting vendor admin keys at rest - Use HTTPS — always terminate TLS before KeyGate
- Restrict CORS — set
CORS_ORIGINSto your specific domain - Rotate admin credentials — change the default admin password immediately
- Network isolation — run the database in a private network
- Regular backups — back up the database regularly
- Monitor audit logs — alert on unusual provisioning patterns
| Version | Supported |
|---|---|
| 0.1.x | ✅ Current |
We appreciate responsible disclosure and will credit security researchers (with permission) in our release notes.