CVE-2026-76983: Apache Wicket: XSS in AutoLabelTextResolver via FormComponent.setLabel

Published Aug 31, 2026
·
Updated

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

The <wicket:label> tag is provided by org.apache.wicket.markup.html.form.AutoLabelTextResolver, which is registered by default in every WebApplication. The resolver writes the label it finds into the markup as it is, and reads no escaping setting at all, so markup in a label is rendered as markup.

When the label comes from the labelled component's label model, set through FormComponent#setLabel(IModel), it is written to the markup unescaped. An application is affected where the label of a form component holds data an attacker can influence. Wicket cannot determine where a model value comes from, so whether it reaches the page from a request or from storage is a property of the application.

There is no workaround. Unlike every other rendering path in Wicket, the resolver never consulted the escape-model-strings setting, so an application had no way to ask for the label to be escaped.

The body of a <wicket:label> tag is markup by design and is not affected; it remains the supported way to place markup in a label.

This issue affects Apache Wicket: from 8.0.0 through 8.18.0, from 9.0.0 through 9.23.0, from 10.0.0 through 10.10.0. Older, unsupported releases from 1.5.0 onwards are also affected. Users are recommended to upgrade to version 8.19.0, 9.24.0 or 10.11.0, which fix the issue.

Affected Software

1 affected component
Apache wicket>0<=8.18.0, >8.18.0<=9.23.0, >9.23.0<=10.10.0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade Apache Wicket to a version that resolves this vulnerability.

    Fixed in 8.19.0
  2. Upgrade

    Upgrade Apache Wicket to a version that resolves this vulnerability.

    Fixed in 9.24.0
  3. Upgrade

    Upgrade Apache Wicket to a version that resolves this vulnerability.

    Fixed in 10.11.0
  4. Compensating control

    No workaround is available; mitigate by upgrading Apache Wicket as specified.

Event History

Aug 31, 2026
CVE Published
via MITRE·11:56 AM
Data Sourced
via MITRE·11:56 AM
DescriptionWeakness
Data Sourced
via NVD·12:17 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Are applications affected by default?

The AutoLabelTextResolver that handles <wicket:label> is registered by default in every WebApplication. An application is affected if a form component's label model, supplied through FormComponent#setLabel(IModel), can contain attacker-influenced data.

2

What must an attacker be able to control?

An attacker needs to influence the value held in a labelled form component's label model. That value may originate from a request or from stored data; Wicket cannot determine the source of a model value.

3

Can the escape-model-strings setting mitigate this issue?

No. This resolver does not consult the escape-model-strings setting, so applications cannot configure label-model output to be escaped through that setting.

4

Is there a workaround if patching is not immediately possible?

No workaround is provided. Applications should identify form labels set through FormComponent#setLabel(IModel) and determine whether their model values can be influenced by untrusted input.

5

Does this affect markup placed directly in the body of a <wicket:label> tag?

No. The body of a <wicket:label> tag is intentionally treated as markup and is not affected; it remains the supported mechanism for placing markup in a label.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203