keycloak-doctor GitHub ↗

Security policy

What the tool touches, what it never prints, and how to report a vulnerability.

Reporting a vulnerability#

Use GitHub's private vulnerability reporting — the Report a vulnerability button in the repository's Security tab. The report stays private until a fix is available.

Please do not open a public issue for a vulnerability.

What helps, in rough order of usefulness:

Redact before you send. A Keycloak realm export is credential material: it carries client secrets, LDAP bind credentials and broker secrets in plaintext. Never attach a real export to a report. Reduce it to the few fields that trigger the bug and replace every secret, hostname and URL with a placeholder — a vulnerability report must not be the thing that leaks your identity provider.

What to expect#

keycloak-doctor is maintained by one person, so this is a best-effort commitment rather than an SLA:

StageTarget
Acknowledgementwithin 5 working days
Assessment and severitywithin 10 working days
Fix for a confirmed high-severity issuein the next release, as a patch on the current minor

Reports are credited in the release notes and in the advisory unless you ask otherwise. There is no bug bounty.

Supported versions#

Only the latest release receives security fixes. Backports to older tags are not provided — keycloak-doctor is a single static binary, so upgrading is replacing one file.

Scope#

In scope — a defect in keycloak-doctor itself:

Out of scope:

Handling the source you audit#

Two notes that are policy rather than bugs:

  1. A realm export is a credential. Keep it out of git, ticket attachments and shared drives, and delete it after the audit. The source/secret-material rule reports how much is in the file you just read.
  2. Give the Admin API credentials read-only rights (view-realm, view-clients, view-identity-providers). keycloak-doctor never writes to a realm, and a section it may not read is reported as not evaluated rather than skipped silently.