Skip to main content

Apache Wicket EUVDEUVD-2026-114901

| CVE-2026-84231 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-11-01 apache GHSA-c66q-rm6m-7cvq
7.4
CVSS 4.0 · Vendor: apache
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Submit URL with apostrophe-breakout payload into model data
  2. Delivery
    Wicket renders ExternalLink onclick handler on non-anchor tag
  3. Exploit
    Victim activates (clicks) the element
  4. Execution
    Browser decodes entity and closes JS string literal
  5. Persist
    Injected script executes in application origin
  6. Impact
    Session/credential theft or actions as victim

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The affected application must bind org.apache.wicket.markup.html.link.ExternalLink to a markup tag that is NOT an a, link, or area element (for example a button or span), which causes Wicket to build a JavaScript onclick handler, AND the URL in the component's model must hold data an attacker can influence (the vendor describes this as the component's ordinary use). The second affected path requires PopupSettings to be attached, placing the value into the generated window.open() call. Exploitation is unauthenticated (PR:N) and remote (AV:N) but is gated by required victim interaction - nothing executes until a user activates the element (UI:A) - and by the deployment-specific component binding (AT:P), which together are the main real-world limiting factors. Only Wicket 8.0.0 through 8.19.0 are affected; 7.x and older are end-of-life.

Impact

This is a genuine but conditional stored/reflected XSS (CWE-79) in Apache Wicket, scored CVSS 4.0 7.4 by the Apache reporter. The 4.0 vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A reflects a network-reachable, unauthenticated (PR:N) flaw that nevertheless requires two things the attacker does not directly control: a specific application coding pattern (the AT:P attack requirement) and a victim actively activating the element (UI:A). Exploitation status is 'no public exploit identified at time of analysis' - there is no KEV listing, no POC reference, and no EPSS value supplied, so the only exploitation signal is the vendor-assigned priority of 'this_week', which indicates it should be addressed promptly but is not flagged as an emergency or as actively exploited. The high VC:H/VI:H impact is the main driver of the 7.4: successful exploitation runs arbitrary script in the application's origin, enabling session/credential theft and unauthorized actions as the victim. The practical risk is tempered by the AT:P condition - the application must bind an ExternalLink to a non-anchor tag (button/span) whose model URL carries attacker-influenced data - and by the UI requirement. Key missing data to note explicitly: EPSS is absent (exploitation probability cannot be quantified), and no POC/KEV data narrows the picture, so prioritization should rest on the vendor 'this_week' label plus the concrete affected-version range rather than on confirmed in-the-wild activity.

Exploit ScenarioDerived

An application uses Wicket's ExternalLink bound to a span or button (not an anchor) with a URL drawn from user-controllable data, such as a profile website field. An attacker stores a value containing an apostrophe that closes the generated single-quoted JavaScript string literal and appends script; when any user clicks the rendered element, the payload executes in the application's origin. No public exploit code has been identified, and exploitation requires that specific component-to-non-anchor binding plus a victim click.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Nov 01, 2026

Cross-site scripting in Apache Wicket 8.0.0 through 8.19.0 lets remote attackers get script executed in the application's origin when an ExternalLink component is bound to a markup tag that is not an a, link or area element (such as a button or span) and the URL held in the component's model contains attacker-influenceable data, which the vendor describes as the component's ordinary use rather than a misuse. The URL is concatenated unescaped into a single-quoted JavaScript string inside the generated onclick handler, and also into the window.open() call built by PopupSettings when popup settings are attached; only attribute-level markup escaping is applied, and the browser decodes the apostrophe character reference before compiling the handler, restoring the quote and closing the literal. Exploitation is unauthenticated and remote but conditional: nothing executes until a user activates the affected element, and the deployment must bind the component to a non-anchor tag, which the Apache reporter scores as CVSS 4.0 7.4 (AT:P, UI:A); no public exploit identified at time of analysis.

RemediationAI

Vendor-released patch: upgrade Apache Wicket to 8.20.0, which the Apache advisory states fixes the issue for the 8.x line; installations still on 7.x or earlier should migrate to a supported version since those branches are end-of-life and will not receive a fix. Until the upgrade is applied, the vulnerable code path can be avoided per the vendor's own description of the trigger: bind ExternalLink only to anchor-family tags (a, link, area) so the JavaScript click handler branch is never generated, and avoid attaching PopupSettings where the model URL is attacker-influenceable, since that path feeds the value into window.open() without JavaScript-context escaping. Neither workaround removes the underlying context-escaping defect and both require auditing each affected view template and component binding, with the trade-off that legitimate non-anchor ExternalLink rendering or popup behaviour must be redesigned. Restricting or validating the values that reach the ExternalLink model limits exposure but cannot be relied on as a complete substitute for the 8.20.0 upgrade. Advisory: https://lists.apache.org/thread.html/39kz9838w25797bpkxn1hvfsm8jtc4zv.

Affected VersionsENISA

Apache Wicket 8.0.0 ≤8.19.0

Affected Packages

euvd apache_wicket no fix

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

Apache Wicket's org.apache.wicket.markup.html.link.ExternalLink normally renders a plain anchor, but when the markup tag it is bound to is not an a, link or area element the component instead synthesizes a JavaScript click handler and writes it into the tag's onclick attribute. The URL value from the component's model is concatenated directly into a single-quoted JavaScript string literal in that handler without JavaScript-context escaping. The neighbouring branch, taken when PopupSettings are attached, does the same thing inside the window.open() call produced by org.apache.wicket.markup.html.link.PopupSettings#getPopupJavaScript(). The only transformation applied is the standard attribute-value markup escaping performed as the tag is written, which converts an apostrophe into a character reference; because browsers decode character references in an attribute value before compiling the event handler, the apostrophe is reinstated, terminates the string literal, and the remainder of the model value is executed as script in the application's origin. This is a classic CWE-79 context-confusion flaw - markup-safe output is not JavaScript-safe output - and its real-world reach is bounded by two prerequisites captured in the assessed vector CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:N and the reporter's CVSS 4.0 AT:P: the application must be built to bind ExternalLink to a non-anchor tag (or attach PopupSettings), and a victim must act on the rendered element before anything runs. The trigger context is fully described by the vendor; what varies between deployments is which binding and popup configurations are actually in use, which cannot be determined from the advisory alone and must be verified per application.

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

Vendor (apache) PRIMARY 7.4 HIGH
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
vuln.today AI 8.0 HIGH

Network XSS needs no auth (PR:N) but depends on a non-default ExternalLink-to-non-anchor binding (AC:H) and a victim click (UI:R); script runs in the app origin so scope changes with high C/I.

3.1 AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:P/PR:N/UI:A/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (apache).

CVSS VectorVendor: apache

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
Active
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Improper neutralization of input during web page generation in Apache Wicket.

org.apache.wicket.markup.html.link.ExternalLink builds a JavaScript click handler and writes it into the tag's onclick attribute whenever the markup tag the component is bound to is not an a, link or area element. The URL held in the component's model is concatenated into a single-quoted JavaScript string literal in that handler without being escaped for that context. The same happens on the neighbouring branch, taken when popup settings are attached, where the value is concatenated into the window.open() call built by org.apache.wicket.markup.html.link.PopupSettings#getPopupJavaScript(). The only escaping applied is the markup escaping that every attribute value receives as the tag is written, which replaces an apostrophe with a character reference. A browser decodes character references in an attribute value before it compiles the event handler, so the apostrophe is restored, closes the string literal, and the rest of the model value is executed as script in the application's origin.

An application is affected where it binds an ExternalLink to a markup tag that is not an anchor, such as a button or a span, and the URL in the model holds data an attacker can influence, which is the ordinary use of the component rather than a misuse of it. Nothing runs until a user activates the element.

This issue affects Apache Wicket: from 8.0.0 through 8.19.0. Users of Apache Wicket 7.x or older, which are no longer supported, should upgrade to a supported version.

Users are recommended to upgrade to version 8.20.0, which fixes the issue.

Executive ViewAI

Why It Matters

A high-severity cross-site scripting vulnerability in Apache Wicket (CVE-2026-84231) exposes organizations running versions 8.0.0 through 8.19.0 to script execution in the application's origin when external links are rendered on non-anchor elements such as buttons or spans. Users of affected applications may unknowingly trigger malicious code, potentially compromising session integrity and data confidentiality. Leadership should prioritize remediation because this flaw affects a widely used Java web framework and could enable credential theft or defacement in customer-facing applications.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations include: restrict ExternalLink components to anchor, link, or area tags only; avoid binding attacker-influenceable data to URL models; apply strict input validation and context-aware output encoding to URLs; disable popup settings on affected elements; deploy a web application firewall with XSS detection rules; and conduct user awareness training on suspicious link activation.

Threat Intelligence Overview

EPSS Score
0.3%
Top 73% exploitable
Prevalence
Low
niche Java component web framework, limited enterprise adoption versus Spring
Social Media
1
Sightings
Data Quality
3 sources
Confidence: Low

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

37
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +37
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

CVE-2026-43975 MEDIUM POC
6.5 May 06

Path traversal vulnerability in Apache Wicket's FolderUploadsFileManager allows unauthenticated attackers to read arbitr

CVE-2026-84170 HIGH
8.3 Nov 01

Apache Wicket's form-less upload endpoint (AbstractFileUploadResource, the server side of FileUploadToResourceField, or

CVE-2026-83594 HIGH
8.3 Nov 01

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

CVE-2026-111089 HIGH
7.6 Nov 01

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

CVE-2026-95863 HIGH
7.6 Nov 01

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

CVE-2026-82956 HIGH
7.6 Nov 01

Stored cross-site scripting in Apache Wicket's AjaxNewWindowNotifyingBehavior allows a client-supplied browser window na

CVE-2026-83559 HIGH
7.4 Nov 01

Apache Wicket's public JavaScriptUtils.escapeQuotes() helper fails to escape backslashes before quotes, so attacker-infl

CVE-2026-83539 HIGH
7.4 Nov 01

Cross-site scripting in Apache Wicket's SmartLinkLabel and SmartLinkMultiLineLabel components turns attacker-influenced

CVE-2026-82840 HIGH
7.2 Nov 01

Session fixation in Apache Wicket's role-based authentication module leaves the container session id unchanged when an a

CVE-2026-82704 MEDIUM
6.9 Nov 01

Missing authorization in Apache Wicket 8.x, 9.x and 10.x allows unauthenticated remote attackers to invoke a component's

CVE-2026-82557 MEDIUM
6.9 Nov 01

Missing authorization in Apache Wicket 10.3.0 through 10.11.0 allows a remote unauthenticated caller to invoke the serve

CVE-2026-66391 MEDIUM
6.5 Jul 27

Unauthenticated remote attackers can partially read and modify data in Apache Wicket versions 9.0.0 through 9.23.0 and 1

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy