SECURITY.md
Rama master · réplica de lectura del repositorio original.
# Security policy
Keyway sits on the login path between apps and identity providers, so its
security posture is documented as code-level fact, not aspiration. This
file states what is supported, how to report, and what to expect.
## Supported versions
Only the tip of `master` receives security fixes. There are no release
branches and no backports — pull latest, rebuild the image, redeploy.
## Report privately
**Do not open a public issue for a suspected vulnerability.** Use
GitHub's private vulnerability reporting
(Security tab → Report a vulnerability) so details stay embargoed until a
fix ships.
Include: affected commit, endpoint or command, impact (what an attacker
gains), and a minimal reproduction. Redact all secrets — rotate any
credential that appears in a report.
## Scope
In scope: the login flow (`/authorize`, `/callback/*`, `/token`),
protocol verification (OIDC/SAML adapters), sealed-secret storage, the
admin auth gate, and the shipped Docker/Caddy configuration.
Out of scope: your IdP's dashboard configuration, your host/VM hardening,
TLS termination you terminate yourself, tunnel URLs, secrets you paste
into chats or issues (rotate them instead), and upstream dependencies —
report those to their own projects (but tell us if you need a bump).
## Response
Best effort, no SLA: triage confirmation, a fix on `master`, and a
post-fix note in the advisory. Severity is judged by blast radius —
cross-tenant impact outranks single-deployment impact, matching the
operator model in `docs/operator-models.md`.
## Known limitations (documented gaps, not reports)
- No master-key rotation in v1 (ciphertext carries no version prefix).
- Admin auth is a single static bearer token; admin has no RBAC or audit
log.
- An empty `KEYWAY_ADMIN_TOKEN` leaves `/admin/*` open — correct only for
localhost dev behind loopback-bound ports (see README security notes).