GHSA-5445-5xcv-f4gr
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSubmit payload via public form field
-
DeliveryPayload stored in application data source
-
ExploitVictim loads page with affected <wicket:label>
-
ExecutionAutoLabelTextResolver writes unescaped label into markup
-
PersistMalicious script executes in victim's browser
-
ImpactSession hijack or credential theft
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 | Exploitation requires that the vulnerable Wicket application passes attacker-controllable data into a form component's label model via FormComponent#setLabel(IModel), and that a page containing that form component is rendered to another user's browser (stored XSS) or to the attacker's own browser in a reflected scenario. The AutoLabelTextResolver is registered by default in every WebApplication, so no special plugin or configuration is required on the framework side - the limiting factor is entirely the application's data-flow design. Applications where label models are populated exclusively from static strings, resource bundles, or fully trusted sources are not affected. Exploitation also requires that a victim user loads the page containing the affected form component (UI:R), limiting mass automated exploitation. Authentication requirements depend on application design: if the attacker can influence label model data without being authenticated (e.g., via a public registration flow), no authentication is needed. |
| Impact | Severity is rated moderate by Apache, consistent with a typical stored or reflected XSS requiring user interaction (UI:R). No CVSS vector was published with this advisory, so exact metrics must be inferred from the description. The attack requires that attacker-controlled data reach a form component label model - this is an application-design prerequisite, not a universal exposure; not every Wicket deployment will pass untrusted input through setLabel(). However, because AutoLabelTextResolver is registered by default and the escape-model-strings bypass was silent and undocumented, developers had no indication their application was misconfigured. No EPSS score is available, KEV status is negative, and no POC has been identified - real-world exploitation probability appears low at present but could increase if a public demonstration is released. The breadth of affected versions (8.x through 10.x, plus all unsupported releases from 1.5.0) means the patch surface is wide across the ecosystem. CVSS score is officially listed as N/A; severity is based solely on the vendor's 'moderate' classification and technical description. |
| Exploit ScenarioDerived | An attacker submits a registration form in a vulnerable Wicket application where the field label is dynamically set from a user-profile attribute (e.g., a display name stored in a database). When the admin or another user views a page containing that form component, the malicious label value is rendered as raw HTML - executing JavaScript that steals the victim's session cookie or performs actions on their behalf. No public exploit code has been identified at time of analysis, but the attack pattern is straightforward for any developer familiar with Wicket's rendering model. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAI
Cross-site scripting in Apache Wicket's AutoLabelTextResolver allows injection of arbitrary markup into web pages when attacker-controlled data reaches a form component's label model via FormComponent#setLabel(IModel). The resolver, registered by default in every WebApplication, writes label values directly into rendered markup without any escaping and ignores the escape-model-strings application setting entirely - meaning there was no available configuration workaround. Applications are vulnerable wherever user-influenced data flows into a label model; this includes both stored XSS (data retrieved from a database) and reflected XSS (data sourced from the current request). No public exploit has been identified at time of analysis, but the vulnerability affects all supported release lines and all unsupported releases from 1.5.0 onwards.
RemediationAI
Upgrade to the fixed releases: 8.19.0, 9.24.0, or 10.11.0 for the respective maintained branches. These versions add proper HTML escaping in AutoLabelTextResolver so that label model values are neutralized before insertion into markup. No effective workaround exists - the vendor explicitly states that the resolver never consulted the escape-model-strings setting, so application-level configuration cannot mitigate the issue in unpatched versions. As a partial compensating control on unpatched deployments, audit all FormComponent#setLabel(IModel) call sites and ensure any label model value sourced from user input or external storage is manually escaped (e.g., using Wicket's Strings.escapeMarkup()) before being placed in the model - but this is application-code-level mitigation requiring a code audit rather than a configuration change. Consult the advisory at https://seclists.org/oss-sec/2026/q3/620 for further details.
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
Apache Wicket (org.apache.wicket:wicket-core) is a Java component-based web framework. Its markup language supports a <wicket:label> tag that is resolved by AutoLabelTextResolver - a resolver registered globally by default in WebApplication. Unlike every other rendering path in Wicket, this resolver never consulted the escape-model-strings flag, which is the standard mechanism developers rely on to ensure model values are HTML-escaped before insertion into markup. The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation / XSS): the resolver performs no character escaping on the IModel value retrieved via FormComponent#setLabel, so any HTML or JavaScript characters in the label value are treated as raw markup. Notably, this is distinct from the body of a <wicket:label> tag, which intentionally supports markup and is not affected. Affected CPE: cpe:2.3:a:apache:wicket:*:*:*:*:*:*:*:* spanning versions 8.0.0-8.18.0, 9.0.0-9.23.0, and 10.0.0-10.10.0.
Know when 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:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N/U:Amber
Network vector, no privileges needed to inject data; user interaction required for XSS; scope changes to victim browser with low C/I impact.
Primary rating from Vendor (CNA).
CVSS VectorVendor
Lifecycle Timeline
2Description PRE-NVD
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
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
Cross-site scripting (XSS) vulnerability in the getWindowOpenJavaScript function in org.apache.wicket.extensions.ajax.ma
The DiskFileItem class in Apache Wicket 6.x before 6.25.0 and 1.5.x before 1.5.17 allows remote attackers to cause a den
The default configuration of XSLTResourceStream.java is vulnerable to remote code execution via XSLT injection when proc
Session fixation in Apache Wicket AuthenticatedWebSession allows remote unauthenticated attackers to hijack user session
Apache Wicket 6.x before 6.25.0, 7.x before 7.5.0, and 8.0.0-M1 provide a CSRF prevention measure that fails to discover
Apache Wicket before 1.5.12, 6.x before 6.17.0, and 7.x before 7.0.0-M3 might allow remote attackers to obtain sensitive
Apache Wicket before 1.5.13, 6.x before 6.19.0, and 7.x before 7.0.0-M5 make it easier for attackers to defeat a cryptog
Per-file size and file-count upload limit enforcement in Apache Wicket 8.x through 10.x can be bypassed when a co-deploy
Remote unauthenticated attackers can access restricted package resources in Apache Wicket 8.x through 10.x by crafting U
A DNS proxy and possible amplification attack vulnerability in WebClientInfo of Apache Wicket allows an attacker to trig
By crafting a special URL it is possible to make Wicket deliver unprocessed HTML templates. Rated high severity (CVSS 7.
An error in the evaluation of the fetch metadata headers could allow a bypass of the CSRF protection in Apache Wicket.1.
EUVD-2026-68491
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB