If you discover a security vulnerability, please do not open a public GitHub issue.
Instead, report it responsibly:
- Email: Send details to the maintainer directly
- Private Security Report: Use GitHub's private vulnerability reporting (if available)
When reporting, please include:
- Description of the vulnerability
- Steps to reproduce
- Potential impact
- Any suggested fixes (optional)
- We aim to acknowledge reports within 48 hours
- We will provide updates on remediation progress
| Version | Supported |
|---|---|
| 1.0.x | ✅ |
- Use HTTPS/TLS in production
- Rotate credentials regularly
- Set appropriate token expiry times
- Restrict CORS origins to specific domains
- Monitor the
/metricsendpoint for anomalies - Keep Go version updated
- Run behind a reverse proxy (nginx, Caddy, etc.)
MachineAuth uses OAuth 2.0 Client Credentials flow:
- Agent requests token with
client_id+client_secret - Server validates credentials
- Server issues JWT (RS256 signed) + refresh token
- Agent uses JWT to access protected resources
- JWT expires (default: 1 hour)
- Agent uses refresh token to get new access token
- Access tokens: Short-lived (configurable, default 1 hour)
- Refresh tokens: Long-lived (configurable, default 7 days)
- Tokens are signed with RS256 (asymmetric)
- Token revocation supported via
/oauth/revoke