Skip to main content
CVE Vulnerability Database

CVE-2023-4853: Quarkus Auth Bypass Vulnerability

CVE-2023-4853 is an authentication bypass flaw in Quarkus where HTTP security policies fail to sanitize certain character permutations, allowing attackers to bypass security controls and access unauthorized endpoints.

Updated:

CVE-2023-4853 Overview

CVE-2023-4853 is an authorization bypass vulnerability in Quarkus, the Kubernetes-native Java framework. The flaw resides in how Quarkus HTTP security policies sanitize incoming request paths. Certain character permutations are not normalized correctly before permission evaluation, allowing attackers to craft requests that bypass declared security constraints. Successful exploitation grants unauthorized access to protected endpoints and may trigger denial-of-service conditions. The vulnerability affects Quarkus upstream releases and multiple Red Hat products that embed Quarkus, including Red Hat build of Quarkus, Red Hat build of OptaPlanner, Camel K, Camel Quarkus, OpenShift Serverless, Process Automation Manager, and Decision Manager.

Critical Impact

Remote unauthenticated attackers can bypass HTTP security policies, accessing protected REST endpoints without credentials and potentially causing denial of service in Quarkus-based applications.

Affected Products

  • Quarkus (multiple versions prior to patched releases)
  • Red Hat build of Quarkus and Red Hat build of OptaPlanner 8.0
  • Red Hat Integration Camel K, Camel Quarkus, and Service Registry
  • Red Hat OpenShift Serverless, OpenShift Container Platform 4.10–4.12, Decision Manager 7.0, and Process Automation Manager 7.0

Discovery Timeline

  • 2023-09-20 - CVE-2023-4853 published to the National Vulnerability Database
  • 2024-11-21 - Last updated in NVD database

Technical Details for CVE-2023-4853

Vulnerability Analysis

The weakness is classified as improper neutralization of equivalent special elements [CWE-148] combined with incorrect authorization [CWE-863]. Quarkus evaluates HTTP security policies by matching the request path against rules defined in application.properties under quarkus.http.auth.policy.* and quarkus.http.auth.permission.*. The matcher relies on a normalized path representation. When the incoming URI contains specific character permutations, the sanitizer fails to produce a canonical form before the policy engine evaluates the rule. The resulting mismatch causes the framework to apply a less restrictive policy than intended, or no policy at all. Attackers reach endpoints that should require authentication or specific roles.

Root Cause

The root cause is inconsistent path normalization between the HTTP routing layer and the security policy enforcement layer. Both layers must agree on how a request URI maps to a route. When Quarkus security policies parse certain encoded characters, trailing constructs, or repeated separators differently from the underlying Vert.x router, the same request resolves to two different paths. The security check passes against one path while the request handler dispatches against another.

Attack Vector

The vulnerability is exploitable over the network without authentication or user interaction. An attacker sends a crafted HTTP request to a Quarkus application protected by quarkus.http.auth.permission rules. By manipulating the request URI with specific character sequences, the attacker causes the policy engine to skip enforcement on an endpoint that the router still serves. No code is required beyond a standard HTTP client capable of issuing the malformed request path. Detailed proof-of-concept payloads are documented in the Red Hat Security Bulletin RHSB-2023-002 and Red Hat Bug Report #2238034.

Detection Methods for CVE-2023-4853

Indicators of Compromise

  • HTTP access logs showing successful 200 responses on protected endpoints from clients that never completed authentication challenges.
  • Request URIs containing unusual encoded characters, doubled path separators, or trailing delimiters targeting paths covered by quarkus.http.auth.permission rules.
  • Anomalous spikes in requests to administrative or /q/ management endpoints from unauthenticated sources.

Detection Strategies

  • Compare authentication events emitted by Quarkus security extensions with the set of routes that returned successful responses to identify mismatches.
  • Deploy WAF rules that reject request paths containing non-canonical encodings before they reach the application.
  • Enable Quarkus security audit logging via quarkus.security.events.enabled=true to capture authorization decisions for correlation.

Monitoring Recommendations

  • Forward Quarkus and reverse proxy access logs to a centralized analytics platform and alert on unauthenticated access to role-protected endpoints.
  • Baseline normal URI patterns per route and trigger alerts on outliers containing encoded slashes, semicolons, or duplicate separators.
  • Monitor for sustained 4xx-to-2xx transitions on the same endpoint from a single source, which can indicate bypass probing.

How to Mitigate CVE-2023-4853

Immediate Actions Required

Patch Information

Red Hat has issued patched packages across the affected product portfolio. Refer to the Red Hat CVE Details for CVE-2023-4853 for the authoritative list of fixed versions per product. Upstream Quarkus releases containing the path normalization fix should be applied to standalone deployments. Review the Red Hat Security Bulletin RHSB-2023-002 for cross-product remediation guidance.

Workarounds

  • Place a reverse proxy or API gateway in front of Quarkus that performs strict URI canonicalization and rejects non-RFC-compliant paths.
  • Tighten quarkus.http.auth.permission rules to use the most specific path matching available and avoid wildcard policies on sensitive endpoints.
  • Require authentication globally and apply permit policies only to explicitly allow-listed public routes, reducing the blast radius of any path-matching mismatch.
bash
# Example: enforce deny-by-default policy in application.properties
quarkus.http.auth.permission.deny-all.paths=/*
quarkus.http.auth.permission.deny-all.policy=authenticated
quarkus.http.auth.permission.public.paths=/public/*,/health
quarkus.http.auth.permission.public.policy=permit
quarkus.security.events.enabled=true

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.