Description
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.
Published: 2026-08-31
Score: 5.1 Medium
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

AjaxEditableChoiceLabel in wicket‑extensions writes the display value obtained from an IChoiceRenderer directly into the component label without applying the HTML escaping that Wicket normally performs. As a result, an attacker who can influence the choice or model data can inject malicious HTML or script that executes in the browsers of any user who views the affected page. This is a stored or reflected client‑side XSS vulnerability that could enable the attacker to perform actions in a victim’s session, steal data, or otherwise compromise the user experience. The weakness is a failure to escape untrusted content and is classified as CWE‑79.

Affected Systems

The vendor is the Apache Software Foundation, product Apache Wicket. Affected versions are 8.0.0 through 8.18.0, 9.0.0 through 9.23.0, and 10.0.0 through 10.10.0. Earlier releases such as 6.22.0 and 1.4.0 also contain the vulnerable logic. The vendor recommends upgrading to 8.19.0, 9.24.0, or 10.11.0 to remediate the issue.

Risk and Exploitability

The CVSS base score is 5.1, indicating moderate severity. No EPSS score is available, and the vulnerability is not listed in the CISA KEV catalog, suggesting that widespread exploitation has not yet been documented. However, because the flaw is triggered by user‑controllable data passed to AjaxEditableLabel components, the attack vector is likely remote. The lack of configuration overrides means that the flaw cannot be mitigated by disabling escaping; only application updates or data sanitization can prevent exploitation.

Generated by OpenCVE AI on August 31, 2026 at 13:22 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Apache Wicket to a patched release (8.19.0, 9.24.0, or 10.11.0 or later).
  • If an upgrade cannot be applied immediately, review all code that supplies data to AjaxEditableLabel, AjaxEditableChoiceLabel, or AjaxEditableMultiLineLabel and ensure that user‑supplied values are properly escaped or sanitized before being passed to the component or overridden method.
  • Verify that any custom implementation of defaultNullLabel does not return tainted data; replace it with a static, harmless value or sanitize the output.

Generated by OpenCVE AI on August 31, 2026 at 13:22 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 31 Aug 2026 13:45:00 +0000

Type Values Removed Values Added
First Time appeared Apache
Apache wicket
Vendors & Products Apache
Apache wicket

Mon, 31 Aug 2026 13:30:00 +0000

Type Values Removed Values Added
References

Mon, 31 Aug 2026 12:00:00 +0000

Type Values Removed Values Added
Description 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.
Title Apache Wicket: XSS in AjaxEditableLabel and its subclasses via IChoiceRenderer and defaultNullLabel
Weaknesses CWE-79
References
Metrics cvssV4_0

{'score': 5.1, 'vector': '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'}


cve-icon MITRE

Status: PUBLISHED

Assigner: apache

Published:

Updated: 2026-08-31T12:16:40.537Z

Reserved: 2026-08-18T09:31:57.216Z

Link: CVE-2026-75802

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-31T12:17:56.967

Modified: 2026-08-31T13:18:25.413

Link: CVE-2026-75802

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-31T13:30:04Z

Weaknesses
  • CWE-79

    Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')