Skip to content

Update out of scope items on security reports#759

Open
abstractj wants to merge 1 commit into
keycloak:mainfrom
abstractj:update-security-scope
Open

Update out of scope items on security reports#759
abstractj wants to merge 1 commit into
keycloak:mainfrom
abstractj:update-security-scope

Conversation

@abstractj
Copy link
Copy Markdown
Contributor

After your approval I will update the SECURITY.md file.

Signed-off-by: Bruno Oliveira da Silva <bruno@abstractj.com>
@abstractj abstractj requested review from ahus1, pedroigor and stianst May 26, 2026 16:29
Copy link
Copy Markdown
Member

@ahus1 ahus1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the update. See below for some comments. Feel free to have a 1:1 call on these.

I realize I've made some changes in the past but didn't update the security.md file. Maybe you could convert the HTML to Markdown with a script to catch also the items I've added in the past.

Comment thread pages/security.ftl
<li>Malicious or compromised administrator: Keycloak's threat model considers realm administrators as trusted. Reports that rely on leveraging legitimate administrator access to abuse extended rights will not be considered, as this applies to any application granting administrative privileges.</li>
<li>Cross-role administrative access between built-in admin roles (e.g., <code>manage-realm</code>, <code>manage-clients</code>, <code>manage-users</code>, <code>view-users</code>, <code>view-clients</code>, <code>query-groups</code>) without proven privilege escalation to a non-administrative user or PII leakage to an unauthenticated party. Administrators with any <code>manage-*</code> or <code>view-*</code> role are considered privileged; accessing data or performing actions across these roles does not constitute a vulnerability.</li>
<li>Informational disclosures without security impact, such as software fingerprinting, generic error messages, basic version strings, directory listings on non-critical paths, or stack traces that do not leak secrets, PII, or internal network structure.</li>
<li>Denial of Service (DoS), including Regular Expression DoS (ReDoS), resource exhaustion via caching, API abuse, or unbounded computations.</li>
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't agree with that:

Comment thread pages/security.ftl
<li>Informational disclosures without security impact, such as software fingerprinting, generic error messages, basic version strings, directory listings on non-critical paths, or stack traces that do not leak secrets, PII, or internal network structure.</li>
<li>Denial of Service (DoS), including Regular Expression DoS (ReDoS), resource exhaustion via caching, API abuse, or unbounded computations.</li>
<li>Self-XSS or XSS that cannot impact other users (e.g., requires unlikely user interaction within the reporter's own session).</li>
<li>User or client enumeration. Confirming user existence is often intentional for usability or unavoidable; effective mitigations (MFA, brute-force protection) exist elsewhere.</li>
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We would still like to hear about enumeration, but we would treat them as hardening? Would that be a third category between in-scope and out-of-scope?

Comment thread pages/security.ftl
<p>The following vulnerability classes are considered out of scope. Reports in these categories will generally be closed without action. We encourage reporters to review this list before submitting to help us focus on actionable security issues.</p>
<ul>
<li>Malicious or compromised administrator: Keycloak's threat model considers realm administrators as trusted. Reports that rely on leveraging legitimate administrator access to abuse extended rights will not be considered, as this applies to any application granting administrative privileges.</li>
<li>Cross-role administrative access between built-in admin roles (e.g., <code>manage-realm</code>, <code>manage-clients</code>, <code>manage-users</code>, <code>view-users</code>, <code>view-clients</code>, <code>query-groups</code>) without proven privilege escalation to a non-administrative user or PII leakage to an unauthenticated party. Administrators with any <code>manage-*</code> or <code>view-*</code> role are considered privileged; accessing data or performing actions across these roles does not constitute a vulnerability.</li>
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The wording surprises me: Why would I have roles in the first place if they can still "access data or performing actions across these roles"? Is "these roles" consider the assigned roles, or also the not assigned roles? Either this is vague, or maybe it is saying: We know it is broken, don't report this any more until we eventually fix it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants