mimux is an email client, and email clients parse hostile input for a living. If you've found a way to break it, thank you — here's how to tell us without telling everyone.
Reporting a vulnerability
Report privately, one of two ways:
- Preferred: open a GitHub security advisory.
- Or email [email protected].
Never a public issue. A public issue with a working exploit puts every self-hosted instance at risk before a fix exists.
What to expect
You'll get an acknowledgement within 7 days, usually sooner. mimux is maintained by one person, so there's no SLA beyond that — fix timelines depend on severity, and a sanitiser bypass will always jump the queue over everything else.
There is no bug bounty: there is no money; there is genuine gratitude. You'll be credited in the advisory under any name you like, or kept anonymous if you prefer.
Supported versions
Only the latest release gets fixes. There are no backports — updating is a container pull, so please stay current.
In scope
- Authentication and session handling
- CSRF protection
- The HTML sanitiser for email bodies (XSS, sanitiser bypasses)
- Remote-content blocking
- Credential storage in SQLite
- OAuth token handling and refresh
- The filter rule engine
- The pro API token scoping
Out of scope
- Anything that requires the attacker to already be the admin user — mimux is single-admin by design, so "admin can do admin things" is not a finding.
- Issues in upstream mail providers.
- Denial of service against your own instance.
How mimux is built to be safe
The design does more work than any policy could:
- Single-user by design. No multi-tenant blast radius — a compromise of one instance is a compromise of one inbox.
- Sanitised rendering. Every email body passes through a strict HTML sanitiser and renders in a sandboxed iframe.
- Remote images blocked by default. Tracking pixels and remote content load only when you say so.
- Credentials stay local. Everything lives in one SQLite file on your own disk; OAuth2 is used where providers support it.
- Scoped API tokens. The pro layer mints tokens with only the permissions each agent needs.
- Two-step agent sending. Agents draft; a separate, explicit call sends.
- Offline licence verification. An Ed25519 signature check on your machine — no activation server means no attack surface from one.