Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with low-privilege session
-
DeliveryOpen own page containing restricted WebSocketBehavior component
-
ExploitSend crafted WebSocket text/binary message
-
ExecutiononMessage() invoked without canCallListener authorization check
-
ImpactInvoke restricted component callback within own session
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
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-specific, non-default coding pattern: the app must attach a WebSocketBehavior that overrides onMessage() to a component (or a child of a component) that it hides, disables, or restricts through its IAuthorizationStrategy - for example via MetaDataRoleAuthorizationStrategy or the AuthorizeAction annotation - while Wicket's native WebSocket support is in use. The attacker must hold their own valid session and open their own page containing such a component; because messages are delivered only to pages in the client's own session page store, there is no access to another user's session, page, or connection. Server-pushed messages are not affected. These factors (required authenticated session, dependence on a specific restricted-component + WebSocketBehavior combination, and self-confined scope) sharply limit realistic risk despite the network attack vector. |
| Impact | All decision signals point to low real-world priority and are mutually consistent. The vendor CVSS 4.0 base score is 2.3 (Low) and the vuln.today decision label is 'monitor', not act_now or emergency. The vector (AV:N/AC:L/AT:P/PR:L/UI:N/VC:L/VI:L/VA:N) shows the attacker must already hold a low-privilege authenticated session (PR:L), the attack has a requirement precondition (AT:P) - namely the specific non-default coding pattern described - and impact is only Low on confidentiality and integrity with no availability or subsequent-system impact. Crucially, the description confines the flaw to the attacker's own session, page and WebSocket connection, so there is no cross-user or cross-tenant impact. This is not in CISA KEV (no confirmed active exploitation), no EPSS score was supplied in the input (exploitation probability cannot be quantified here), and no public exploit identified at time of analysis - the only reference is the Apache advisory thread, not PoC/exploit code. Net assessment: a genuine but low-severity authorization gap that depends on an application-specific misuse pattern; it warrants patching during normal maintenance, not emergency response. Note the 'Authentication Bypass' tag overstates the issue: CWE-862 and the description describe missing authorization for an already-authenticated user, not an authentication bypass. |
| Exploit ScenarioDerived | A low-privileged user with their own valid session opens one of their own pages that contains a component the application restricts via its IAuthorizationStrategy (e.g. hidden, disabled, or role-gated) but which also carries a WebSocketBehavior overriding onMessage(). The user sends crafted WebSocket text or binary messages over the single per-page connection, and Wicket delivers them straight to that behavior's onMessage() callback without performing the canCallListener authorization check an Ajax behavior on the same component would be subjected to, letting the user invoke callback logic they should not reach. No public exploit identified at time of analysis; impact is limited to the attacker's own session. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Nov 01, 2026
Missing authorization in Apache Wicket's native WebSocket support lets a client's text and binary messages reach a WebSocketBehavior's onMessage() callbacks even when the component that behavior is attached to is hidden, disabled, or denied by the application's IAuthorizationStrategy. Only applications that override onMessage() on a WebSocketBehavior attached to (or beneath) such a restricted component are affected, and an attacker must hold their own valid session and open their own page containing that component, since messages are delivered only within the client's own page store and never to another user's session or connection. Affected releases are 8.0.0 through 8.19.0, 9.0.0 through 9.24.0 and 10.0.0 through 10.11.0 (with older unsupported 6.x-and-later releases also affected); no public exploit code has been identified at time of analysis, the issue is not in CISA KEV, and priority signals point to monitoring rather than urgent action.
RemediationAI
The vendor fix is to upgrade to Apache Wicket 8.20.0, 9.25.0 or 10.12.0, matching the branch in use, as documented in the advisory at https://lists.apache.org/thread.html/o1ojfn53742ztd13m93336t3kdjw2tq9; older 6.x and other unsupported lines receive no fix and should be migrated to a supported branch. Where upgrading cannot be done immediately, the exposure can be removed by configuration rather than by code change: ensure no WebSocketBehavior that overrides onMessage() is attached to a component, or to a child of a component, that the application hides, disables, or restricts via MetaDataRoleAuthorizationStrategy or AuthorizeAction - for instance by moving the behavior onto a component that is unconditionally visible and enabled, or by gating the message handling inside onMessage() against the same IAuthorizationStrategy decisions that would apply to the enclosing component. The trade-off of the in-callback approach is that it duplicates authorization logic outside Wicket's normal canCallListener path, so it must be kept in sync with the application's visibility, enablement and role rules; note that server-pushed messages are not affected and require no change.
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
Wicket opens a single WebSocket connection per page and dispatches each inbound message to every WebSocketBehavior bound to that page. For Ajax behaviors, Wicket gates invocation through Behavior#canCallListener(Component), which refuses a component that is not visible or not enabled, including one for which the configured IAuthorizationStrategy denies the RENDER or ENABLE action; org.apache.wicket.protocol.ws.api.WebSocketBehavior omits that equivalent check before calling its onMessage() callbacks. The root cause is therefore CWE-862 (Missing Authorization): a server-side authorization gate that exists on one dispatch path is absent on a parallel one, so a behavior on a restricted component still receives client text and binary messages together with a WebSocketRequestHandler that can write back to the client. Practically this requires a non-default, application-specific coding pattern - a WebSocketBehavior with an overridden onMessage() attached to a component (or a child of one) that the application hides, disables, or restricts through MetaDataRoleAuthorizationStrategy or the AuthorizeAction annotation - while Wicket's native WebSocket support is enabled. Scope is self-confined: delivery occurs only to pages in the attacker's own session page store, so there is no cross-session, cross-page or cross-connection reach, and server-pushed messages are unaffected. The CPE cpe:2.3:a:apache_software_foundation:apache_wicket is a wildcard covering the 8.x, 9.x and 10.x lines; the CNA scored the issue 2.3 under CVSS 4.0, while the independent assessment rates it 3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N, with authenticated access (PR:L) and high attack complexity reflecting the dependence on a specific restrictive configuration rather than on any timing or memory-manipulation condition.
Know when Apache Wicket 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:P/PR:L/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
Requires an authenticated low-privilege session (PR:L) and a specific non-default restricted-component/WebSocketBehavior configuration (AC:H); impact is limited (C:L/I:L) with no availability effect and no scope change.
Primary rating from Vendor (apache).
CVSS VectorVendor: apache
DescriptionCVE.org
Missing authorization in Apache Wicket.
org.apache.wicket.protocol.ws.api.WebSocketBehavior, through which Wicket's native WebSocket support hands a message sent by the client to the application, calls its onMessage() callbacks without checking whether the client may invoke the component the behavior is attached to. Wicket opens a single WebSocket connection per page, and a message received on it is delivered to every WebSocketBehavior of that page. For an Ajax behavior Wicket makes this check before invoking it, through Behavior#canCallListener(Component), which refuses a component that is not visible or not enabled, including one for which the IAuthorizationStrategy denies the RENDER or ENABLE action. A WebSocketBehavior attached to such a component, or to a child of one, therefore receives the client's text and binary messages, together with a WebSocketRequestHandler that writes back to that client, where an Ajax behavior on the same component would be refused.
An application is affected where it attaches a WebSocketBehavior that overrides onMessage() to a component that it hides, disables, or restricts through its IAuthorizationStrategy, for example with MetaDataRoleAuthorizationStrategy or the AuthorizeAction annotation. The client needs a session of their own and a page of their own that contains such a component: messages are delivered only to pages in the page store of the client's own session, so this gives no access to another user's session, page or connection. Messages pushed by the server are not affected.
This issue affects Apache Wicket: from 8.0.0 through 8.19.0, from 9.0.0 through 9.24.0, from 10.0.0 through 10.11.0. Older, unsupported releases from 6.0.0 onwards are also affected. Users are recommended to upgrade to version 8.20.0, 9.25.0 or 10.12.0, which fix the issue.
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.
More in Apache Wicket
View allPath traversal vulnerability in Apache Wicket's FolderUploadsFileManager allows unauthenticated attackers to read arbitr
Apache Wicket's form-less upload endpoint (AbstractFileUploadResource, the server side of FileUploadToResourceField, or
Heap-exhaustion denial of service in Apache Wicket 9.14.0 through 9.24.0 and 10.0.0 through 10.11.0, reachable without a
Cross-site scripting in Apache Wicket 8.0.0 through 8.19.0, 9.0.0 through 9.24.0 and 10.0.0 through 10.11.0 allows text
Cross-site scripting in Apache Wicket 8.0.0 through 8.19.0, 9.0.0 through 9.24.0 and 10.0.0 through 10.11.0 lets a value
Stored cross-site scripting in Apache Wicket's AjaxNewWindowNotifyingBehavior allows a client-supplied browser window na
Cross-site scripting in Apache Wicket 8.0.0 through 8.19.0 lets remote attackers get script executed in the application'
Apache Wicket's public JavaScriptUtils.escapeQuotes() helper fails to escape backslashes before quotes, so attacker-infl
Cross-site scripting in Apache Wicket's SmartLinkLabel and SmartLinkMultiLineLabel components turns attacker-influenced
Session fixation in Apache Wicket's role-based authentication module leaves the container session id unchanged when an a
Missing authorization in Apache Wicket 8.x, 9.x and 10.x allows unauthenticated remote attackers to invoke a component's
Missing authorization in Apache Wicket 10.3.0 through 10.11.0 allows a remote unauthenticated caller to invoke the serve
EUVD-2026-114888
GHSA-r953-8335-p3v2
NVD
CVE.org
EPSS
VulDB
Exploit-DB