CVE-2026-39852
Quarkus authorization bypass via semicolon path normalization inconsistency
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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- Low
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
8.8
Quarkus authorization bypass via semicolon path normalization inconsistency
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.
- Record
CVE-2026-39852- CVSS 4.0
- 8.8 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N - CVSS 3.1
- 8.2 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H - Weakness
- CWE-863, CWE-551
- Updated
- 2026-11-02
EUVDEUVD-2026-27500
8.8
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.
- Record
EUVD-2026-27500- CVSS 4.0
- 8.8 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-rc95-pcm8-65v9
8.8
Quarkus has Authentication/Authorization bypasses
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).
- Record
GHSA-rc95-pcm8-65v9- CVSS 4.0
- 8.8 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N - CVSS 3.1
- 8.2 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N - Weakness
- CWE-287, CWE-551, CWE-863
- Updated
- 2026-11-02
NVD
8.8
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.
- Record
CVE-2026-39852- CVSS 4.0
- 8.8 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - CVSS 3.1
- 8.2 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N - CVSS 3.1
- 8.2 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H - Weakness
- CWE-863, CWE-551
- Updated
- 2026-11-02
OSVGHSA-rc95-pcm8-65v9
8.8
Quarkus has Authentication/Authorization bypasses
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).
- Record
GHSA-rc95-pcm8-65v9- CVSS 4.0
- 8.8 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N - CVSS 3.1
- 8.2 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N - Weakness
- CWE-287, CWE-551, CWE-863
- Updated
- 2026-11-02
Affected products
- quarkus
- quarkusio quarkus
- red hat cryostat 4 on rhel 9
- red hat hawtio hawtio 4.4.0
- red hat openshift serverless
- red hat build of apache camel 4 for quarkus 3
- red hat build of apache camel 4.14 for quarkus 3.27
- red hat build of apicurio registry 2
- red hat build of apicurio registry 3
- red hat build of debezium 3
- red hat build of keycloak
- red hat build of optaplanner 8
Affected packages
| Package | Affected | Fixed |
|---|---|---|
io.quarkus:quarkus-vertx-httpMaven |
before 3.20.6.1 | 3.20.6.1 |
io.quarkus:quarkus-vertx-httpMaven |
3.21.0 up to 3.27.3.1 | 3.27.3.1 |
io.quarkus:quarkus-vertx-httpMaven |
3.30.0 up to 3.33.1.1 | 3.33.1.1 |
io.quarkus:quarkus-vertx-httpMaven |
3.34.0 up to 3.35.1.1 | 3.35.1.1 |
io.quarkus:quarkus-vertx-httpMaven |
before 3.20.6.1, plus listed versions 0.23.00.23.10.23.20.24.00.25.0 Show 45 moreShow less0.26.00.26.10.27.00.28.00.28.11.0.0.CR11.0.0.CR21.0.0.Final1.0.1.Final1.1.0.CR11.1.0.Final1.1.1.Final1.10.0.CR11.10.0.Final1.10.1.Final1.10.2.Final1.10.3.Final1.10.4.Final1.10.5.Final1.11.0.Beta11.11.0.Beta21.11.0.CR11.11.0.Final1.11.1.Final1.11.2.Final1.11.3.Final1.11.4.Final1.11.5.Final1.11.6.Final1.11.7.Final1.12.0.CR11.12.0.Final1.12.1.Final1.12.2.Final1.13.0.CR11.13.0.Final1.13.1.Final1.13.2.Final1.13.3.Final1.13.4.Final1.13.5.Final1.13.6.Final1.13.7.Final1.2.0.CR11.2.0.Final |
3.20.6.1 |
io.quarkus:quarkus-vertx-httpMaven |
3.21.0 up to 3.27.3.1, plus listed versions 3.21.13.21.23.21.33.21.43.22.0 Show 34 moreShow less3.22.0.CR13.22.13.22.23.22.33.23.03.23.0.CR13.23.13.23.23.23.33.23.43.24.03.24.0.CR13.24.13.24.23.24.33.24.43.24.53.25.03.25.0.CR13.25.13.25.23.25.33.25.43.26.03.26.0.CR13.26.13.26.23.26.33.26.43.27.03.27.0.CR13.27.13.27.23.27.3 |
3.27.3.1 |
io.quarkus:quarkus-vertx-httpMaven |
3.30.0 up to 3.33.1.1, plus listed versions 3.30.13.30.23.30.33.30.43.30.5 Show 18 moreShow less3.30.63.30.73.30.83.31.03.31.0.CR13.31.13.31.23.31.33.31.43.32.03.32.0.CR13.32.13.32.23.32.33.32.43.33.03.33.0.CR13.33.1 |
3.33.1.1 |
io.quarkus:quarkus-vertx-httpMaven |
3.34.0 up to 3.35.1.1, plus listed versions 3.34.13.34.23.34.33.34.43.34.5 Show 5 moreShow less3.34.63.34.73.35.03.35.0.CR13.35.1 |
3.35.1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-39852 is a high vulnerability (CVSS 8.8) in Quarkus, published May 4, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.71%, the 53rd percentile. Fixed in io.quarkus:quarkus-vertx-http 3.20.6.1.
References
github.com/quarkusio/quarkus/security/advisories/GHSA-rc95-pcm8-65v9
access.redhat.com/security/cve/CVE-2026-39852
bugzilla.redhat.com/show_bug.cgi?id=2457819
security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-39852.json
access.redhat.com/errata/RHSA-2026:17789
access.redhat.com/errata/RHSA-2026:25089
Show 8 moreShow less
access.redhat.com/errata/RHSA-2026:13631
access.redhat.com/errata/RHSA-2026:11720
access.redhat.com/errata/RHSA-2026:11721
access.redhat.com/errata/RHSA-2026:34608
access.redhat.com/errata/RHSA-2026:54435
nvd.nist.gov/vuln/detail/CVE-2026-39852
github.com/advisories/GHSA-rc95-pcm8-65v9
github.com/quarkusio/quarkus
Left out here: 306 versions. The JSON record has them.