GitHub Advisoryadvisory · Maven

GHSA-jgwc-jh89-rpgq Keycloak proxy header handling Denial-of-Service (DoS) vulnerability

MEDIUM Published 2024-11-25 Modified 2024-11-25 Official page ↗
Aliases
CVE-2024-9666
Ecosystem
Maven
Packages
org.keycloak:keycloak-quarkus-server
Severity
Moderate
CVSS vector
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H
Weaknesses
CWE-444
Reviewed
2024-11-25

Affected packages

• Maven org.keycloak:keycloak-quarkus-server: < 24.0.9 (no fix yet) • Maven org.keycloak:keycloak-quarkus-server: >= 25.0.0, < 26.0.6 → fixed in 26.0.6

Description

Keycloak versions 26 and earlier are vulnerable to a denial-of-service (DoS) attack through improper handling of proxy headers. When Keycloak is configured to accept incoming proxy headers, it may accept non-IP values, such as obfuscated identifiers, without proper validation. This can lead to costly DNS resolution operations, which an attacker could exploit to tie up IO threads and potentially cause a denial of service. The attacker must have access to send requests to a Keycloak instance that is configured to accept proxy headers, specifically when reverse proxies do not overwrite incoming headers, and Keycloak is configured to trust these headers. For Keycloak version 26, for successful exploitation includes: the realm must have SslRequired=EXTERNAL (the default), HTTP must be enabled, the instance must not be using a full hostname URL, access must come from behind a proxy (assuming the proxy overwrites the X-Forwarded-For header), and trusted proxies must not be set or must incorrectly trust the client from which the request is originating.

Related

Alias · CVE (1)

  • CVE-2024-9666 A vulnerability was found in the Keycloak Server. vulnerability

Weakness · CWE (1)

  • CWE-444 Inconsistent Interpretation of HTTP Requests weakness

References