CVE-2026-75802: Apache Wicket: XSS in AjaxEditableLabel and its subclasses via IChoiceRenderer and defaultNullLabel

Published Aug 31, 2026
·
Updated

AjaxEditableChoiceLabel in wicket-extensions, when constructed with a non-null IChoiceRenderer, writes the display value obtained from that renderer into the label's markup without applying the HTML escaping Wicket performs by default for component model values. An attacker who can influence the choice or model data rendered by such a label can inject HTML or script that executes in the browser of any user who views the page. The same value is correctly escaped when the component's dropdown editor renders it as an option, so only the label rendering is affected.

AjaxEditableLabel, AjaxEditableChoiceLabel and AjaxEditableMultiLineLabel write the value returned by the protected defaultNullLabel() method into the label's markup the same way when the component's model is empty, while the model value they show otherwise is escaped. The default implementation returns a constant, so an application is affected where it overrides that method and returns a value an attacker can influence.

Neither value could be escaped by configuration, because escapeModelStrings had no effect on any of the three components: it is read by the label they render with rather than by the component itself, and nothing carried the setting across.

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 are also affected; the display value from the renderer since 6.22.0 and the null label since 1.4.0. 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>8.0.0<=8.18.0, >9.0.0<=9.23.0, >10.0.0<=10.10.0, >=undefined, >=undefined

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. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Patch CVE-2026-75802

Event History

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

Frequently Asked Questions

1

Which application patterns should be prioritized for review?

Review uses of AjaxEditableChoiceLabel constructed with a non-null IChoiceRenderer where an untrusted party can influence the choice or model data used for the displayed label. Also review AjaxEditableLabel, AjaxEditableChoiceLabel, and AjaxEditableMultiLineLabel subclasses that override defaultNullLabel() and can return attacker-influenced content when their model is empty.

2

What access does an attacker need to exploit this issue?

The attacker must be able to influence data that is rendered as the label display value, either through the choice or model data used by a non-null IChoiceRenderer or through an attacker-influenced value returned by an overridden defaultNullLabel(). Successful exploitation requires a user to view the affected page in a browser.

3

Is the editable dropdown option rendering also vulnerable?

No. The display value is correctly escaped when the dropdown editor renders it as an option; the unescaped output is limited to the label rendering.

4

Can escapeModelStrings be used as a temporary mitigation?

No. escapeModelStrings has no effect on these three components because it is read by the label they render rather than by the component itself.

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