Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain valid token with insufficient scopes
-
DeliveryAuthenticate on broad parent route
-
ExploitRequest child route guarded by scope requirement
-
ExecutionChainAuthHandler skips postAuthentication scope check
-
ImpactAccess resource beyond granted scopes
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires an application built on vertx-web that uses ChainAuthHandler together with scope-requiring authentication handlers (JWTAuthHandler or OAuth2AuthHandler) configured via withScope() or withScopes(), in either any() or all() chain mode. Critically, the victim request pipeline must authenticate the user via a preceding handler before the chain runs - the most common trigger being overlapping authentication handlers on nested routes where a parent route authenticates broadly and a child route's chain enforces specific scopes. The attacker must possess a valid token (PR:L / authenticated) but one lacking the required scopes. Limiting factors: this is NOT a default configuration - it depends on the specific nested/overlapping route-plus-chain setup described, and it requires valid prior authentication, so unauthenticated attackers cannot trigger it. Affected only in vertx-web 4.0.0-4.5.34, 5.0.0-5.0.12, 5.1.0-5.1.9, and 5.2.0. |
| Impact | This is a genuine authorization-control weakness rather than a hype-driven high score. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N) and base score of 8.6 indicate a network-reachable flaw with low attack complexity, but PR:L confirms the attacker must already hold a valid authentication token - so this is an authenticated privilege/scope escalation, not an unauthenticated breach. No EPSS score, CISA KEV listing, or POC indicator was provided in the input, so there is no evidence of active exploitation or public exploit code; exploitation status is therefore 'no public exploit identified at time of analysis.' The real limiting factor is configuration-dependence: the bypass only manifests when ChainAuthHandler is combined with scope-requiring handlers AND the user is pre-authenticated by an earlier pipeline handler (the classic nested parent/child route pattern). This narrows real-world exposure well below what the 8.6 implies for any single deployment. Net: a real priority for teams that use vertx-web scope enforcement on nested routes, but not a mass-exploitation 'patch-tonight' event absent KEV/EPSS signals. Note the discrepancy worth flagging to defenders - the CVSS impact is marked VC:H/VI:H (high confidentiality and integrity), yet the described impact is scope/authorization bypass granting access beyond granted permissions, which is plausible but should be validated against the specific resources each application protects. |
| Exploit ScenarioDerived | An application authenticates users broadly on a parent route, then relies on a child route's ChainAuthHandler with JWTAuthHandler/OAuth2AuthHandler and withScope() to restrict a sensitive endpoint. An attacker holding a valid token with insufficient scopes requests the child endpoint; because they were already authenticated upstream, postAuthentication() skips scope validation and grants access to the scope-protected resource. No public exploit code was identified in the provided data. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 14, 2026
Eclipse Vert.x Web versions 4.0.0 through 4.5.34, 5.0.0 through 5.0.12, 5.1.0 through 5.1.9, and 5.2.0 contain a scope bypass in ChainAuthHandler that allows an authenticated remote attacker with a valid token but insufficient scopes to access resources protected by withScope() or withScopes() requirements. The flaw occurs when a preceding authentication handler in the request pipeline has already authenticated the user, causing ChainAuthHandler to skip scope validation in both any() and all() modes; the most common trigger is overlapping authentication handlers on nested routes. No public exploit code or active exploitation has been identified at time of analysis.
RemediationAI
Upgrade to a patched release as specified in the vendor advisory (https://github.com/vert-x3/vertx-web/security/advisories/GHSA-2p39-cr56-w58j), which provides fixed versions for the affected lines. If immediate upgrade is not possible, avoid configurations where a parent route authenticates broadly and a child route uses ChainAuthHandler to enforce scopes. Specifically, ensure that ChainAuthHandler is the first authentication handler in the pipeline for routes requiring scope checks, or perform explicit scope validation in application code before granting access. Removing overlapping authentication handlers may alter intended behavior and should be tested. There is no indication of active exploitation, but the vulnerability is serious and should be prioritized for patching.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The vulnerability resides in Eclipse Vert.x Web's ChainAuthHandler (Maven coordinate io.vertx:vertx-web), a component used to combine multiple authentication handlers. When a user is already authenticated on the routing context by an earlier handler, ChainAuthHandler's postAuthentication() method finds that internal state, normally set during the authenticate() phase, is absent because that phase was skipped entirely. In any() mode, this absence causes the method to fall through without delegating scope checks to any handler; in all() mode, scope checks are unconditionally skipped. Consequently, validation configured via withScope() or withScopes() is bypassed. The root cause is an incorrect authorization logic flaw (CWE-863) where the code does not account for pre-authenticated users. Affected versions are vertx-web 4.0.0-4.5.34, 5.0.0-5.0.12, 5.1.0-5.1.9, and 5.2.0.
Know when Vert X gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Network-reachable with a valid but under-scoped token so PR:L; no user interaction and no attacker-side complexity (AC:L); grants read/write access to scope-protected resources (C:H/I:H), no availability impact.
Primary rating from Vendor (eclipse).
CVSS VectorVendor: eclipse
DescriptionCVE.org
In Eclipse Vert.x versions [4.0.0, 4.5.34] or [5.0.0,5.0.12] or [5.1.0,5.1.9] or [5.2.0, 5.2.0], a scope bypass vulnerability exists in Eclipse Vert.x Web's ChainAuthHandler when used with scope-requiring authentication handlers such as JWTAuthHandler or OAuth2AuthHandler. When a user is already authenticated on the routing context by a preceding handler in the request pipeline, ChainAuthHandler skips all scope validation configured via withScope() or withScopes(). This affects both any() and all() chain modes.
The root cause is that postAuthentication() relies on internal state that is only set during the authenticate() phase, which is skipped entirely for pre-authenticated users. In any() mode, the absence of this state causes the method to fall through without delegating scope checks to any handler. In all() mode, scope checks are unconditionally skipped.
This allows a user with a valid token but insufficient scopes to access resources protected by scope requirements, provided they were authenticated by an earlier handler in the pipeline. The most common trigger is overlapping authentication handlers on nested routes, where a parent route authenticates broadly and a child route uses a chain to enforce specific scopes.
The impacted component Maven coordinate is io.vertx:vertx-web
Technical POC Analysis
Bug class: authorization bypass caused by a security check that is skipped when an upstream handler has already satisfied authentication.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Eclipse Vert.x Web, a Java framework used in many APIs and microservices, has an authorization scope bypass in ChainAuthHandler that can let a holder of a valid but low-scope token reach resources meant for higher-scope users on affected versions 4.0.0 through 4.5.34, 5.0.0 through 5.0.12, 5.1.0 through 5.1.9, and 5.2.0. No public exploit identified at time of analysis and no vendor-released patch identified at time of analysis, but because this is an access-control bypass, any organization using these versions for protected routes should treat it as a material risk to data confidentiality and regulatory compliance. Leadership should prioritize discovery of affected deployments and interim authorization controls until a fix is available.
No vendor-released patch identified at time of analysis; interim mitigations include eliminating overlapping authentication handlers on nested routes, consolidating scope checks into a single authorization layer or API gateway, enforcing withScope() and withScopes() equivalents in application code, and monitoring for unauthorized scope-bypass access.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
In version from 3.0.0 to 3.5.3 of Eclipse Vert.x, the StaticHandler uses external input to construct a pathname that sho
In version from 3.0.0 to 3.5.2 of Eclipse Vert.x, the CSRFHandler do not assert that the XSRF Cookie matches the returne
Wildcard TLS certificate validation in Eclipse Vert.x allows remote attackers to bypass Server Name Indication (SNI) hos
In version from 3.5.Beta1 to 3.5.3 of Eclipse Vert.x, the OpenAPI XML type validator creates XML parsers without taking
HTTP request smuggling in Eclipse Vert.x (io.vertx:vertx-core) affects versions 5.0.0 through 5.0.12, 5.1.0 through 5.1.
CRLF injection in Eclipse Vert.x's vertx-mail-client (io.vertx:vertx-mail-client) lets a remote, unauthenticated attacke
In Eclipse Vert.x version 4.3.0 to 4.5.9, the gRPC server does not limit the maximum length of message payload (Maven GA
In version from 3.0.0 to 3.5.3 of Eclipse Vert.x, the WebSocket HTTP upgrade implementation buffers the full http reques
Eclipse Vert.x's web StaticHandler fails to enforce its hidden-file restriction on files nested inside hidden directorie
Stored cross-site scripting in Eclipse Vert.x 4.0.0 through 4.5.21 and 5.0.0 through 5.0.4 can execute in the context of
In Eclipse Vert.x version 3.0 to 3.5.1, the HttpServer response headers and HttpClient request headers do not filter car
EUVD-2026-101605
GHSA-wrr9-rmv8-g28m
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB