CVE-2026-39852: GHSL-2026-099: Authorization Bypass in Quarkus - CVE-2026-39852
Quarkus is a Java framework for building cloud-native applications. In versions prior to 3.20.6.1, 3.27.3.1, 3.33.1.1, 3.35.1.1, 3.34.7, and 3.35.2, a path normalization inconsistency between the security layer and the routing layer allows unauthenticated or lower-privileged users to bypass HTTP path-based authorization policies. Quarkus's security layer performs authorization checks on the raw URL path which preserves matrix parameters (semicolons), while RESTEasy Reactive's routing layer strips matrix parameters before matching endpoints. An attacker can append a semicolon and arbitrary text to a request URL (e.g., /api/admin;anything) to bypass policies protecting /api/admin while still routing to the protected endpoint. This issue has been fixed in versions 3.20.6.1, 3.27.3.1, 3.33.1.1, 3.35.1.1, 3.34.7, and 3.35.2.
Other sources
Quarkus is vulnerable to an authorization bypass issue where semicolons (matrix parameters) in HTTP requests can be used to bypass path-based HTTP security policies. The vulnerability arises because Quarkus's security layer performs authorization checks on the raw URL path which preserves matrix parameters.
When a path such as "/api/admin" is protected by a path-based HTTP security policy, sending a request like "/api/admin;anything" can bypass this policy while still routing to the protected endpoint unless the policy is configured to protect the exact "/api/admin;anything" path.
— Red Hat
Quarkus version 3.32.4 is vulnerable to an authorization bypass issue (GHSL-2026-099), in which semicolons (matrix parameters) in HTTP requests can be used to bypass security constraints, potentially allowing unauthorized access to protected resources.
Unauthenticated or lower-privileged users can bypass HTTP path-based authorization policies by appending a semicolon (;) and arbitrary text to the request URL. The vulnerability arises from a path-normalization inconsistency: Quarkus's security layer performs authorization checks on the raw URL path (which preserves matrix parameters), whereas RESTEasy Reactive's routing layer strips matrix parameters before matching endpoints. This allows requests like /api/admin;anything to bypass policies protecting /api/admin while still routing to the protected endpoint.
Impact
This issue may lead to Authentication/Authorization bypasses.
Credits
This issue was discovered with the GitHub Security Lab Taskflow Agent and manually verified by GHSL team members @p- (Peter Stöckli) and @m-y-mo (Man Yue Mo).
— GitHub
Quarkus was vulnerable to an authorization bypass issue, where the use of semicolons in HTTP requests can improperly bypass security constraints, potentially allowing unauthorized access to protected resources.
— GitHub Security Lab
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
maven/io.quarkus:quarkus-vertx-httpto a version that resolves this vulnerability.Fixed in 3.35.1.1 - Upgrade
Upgrade
maven/io.quarkus:quarkus-vertx-httpto a version that resolves this vulnerability.Fixed in 3.33.1.1 - Upgrade
Upgrade
maven/io.quarkus:quarkus-vertx-httpto a version that resolves this vulnerability.Fixed in 3.27.3.1 - Upgrade
Upgrade
maven/io.quarkus:quarkus-vertx-httpto a version that resolves this vulnerability.Fixed in 3.20.6.1 - Upgrade
Upgrade
Quarkusto a version that resolves this vulnerability.Fixed in 3.20.6.1 - Upgrade
Upgrade
Quarkusto a version that resolves this vulnerability.Fixed in 3.27.3.1 - Upgrade
Upgrade
Quarkusto a version that resolves this vulnerability.Fixed in 3.33.1.1 - Upgrade
Upgrade
Quarkusto a version that resolves this vulnerability.Fixed in 3.35.1.1 - Upgrade
Upgrade
Quarkusto a version that resolves this vulnerability.Fixed in 3.34.7 - Upgrade
Upgrade
Quarkusto a version that resolves this vulnerability.Fixed in 3.35.2
Event History
Frequently Asked Questions
What is the severity of CVE-2026-39852?
The severity of CVE-2026-39852 is high due to the potential for unauthorized access to protected resources.
How do I fix CVE-2026-39852?
To fix CVE-2026-39852, upgrade to version 3.35.1.1 or later of the affected Quarkus packages.
Which versions of Quarkus are affected by CVE-2026-39852?
CVE-2026-39852 affects Quarkus versions between 3.20.6.1 and 3.34.0, inclusive.
What type of vulnerability is CVE-2026-39852?
CVE-2026-39852 is an authorization bypass vulnerability related to matrix parameters in HTTP requests.
Can unauthorized users exploit CVE-2026-39852?
Yes, unauthorized or lower-privileged users can exploit CVE-2026-39852 to bypass security constraints.