Skip to content

XSS in registration template

High
tmortagne published GHSA-gx6h-936c-vrrr Feb 9, 2022

Package

maven org.xwiki.platform.web.templates (Maven)

Affected versions

>= 2.6.1, >= 2.7RC1

Patched versions

12.10.11, 14.0-rc-1, 13.4.7, 13.10.3

Description

Impact

We found a possible XSS vector in the registerinline.vm template related to the xredirect hidden field.
This template is only used in the following conditions:

  • the wiki must be open to registration for anyone
  • the wiki must be closed to view for Guest users (more specifically the XWiki.Registration page must be forbidden in View for guest user)

A way to obtain the second condition is when administrators checked the "Prevent unregistered users from viewing pages, regardless of the page rights" box in the administration rights.

Patches

The issue is patched in versions 12.10.11, 14.0-rc-1, 13.4.7, 13.10.3.

Workarounds

There are two main ways for protecting against this vulnerability, the easiest and the best one is by applying a patch in the registerinline.vm template, the patch consists in checking the value of the xredirect field to ensure it matches the following:

<input type="hidden" name="xredirect" value="$escapetool.xml($!request.xredirect)" />

If for some reason it's not possible to patch this file, another workaround is to ensure "Prevent unregistered users from viewing pages, regardless of the page rights" is not checked in the rights and apply a better right scheme using groups and rights on spaces.

References

https://jira.xwiki.org/browse/XWIKI-19291

For more information

If you have any questions or comments about this advisory:

Severity

High

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
Required
Scope
Changed
Confidentiality
High
Integrity
None
Availability
None

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:N/A:N

CVE ID

CVE-2022-23622

Weaknesses

Improper Neutralization of Script-Related HTML Tags in a Web Page (Basic XSS)

The product receives input from an upstream component, but it does not neutralize or incorrectly neutralizes special characters such as <, >, and & that could be interpreted as web-scripting elements when they are sent to a downstream component that processes web pages. Learn more on MITRE.