Impact
Any user with edit right on any page can perform arbitrary remote code execution by adding instances of XWiki.SearchSuggestConfig and XWiki.SearchSuggestSourceClass to their user profile or any other page. This compromises the confidentiality, integrity and availability of the whole XWiki installation.
To reproduce on an instance, as a user without script nor programming rights, add an object of type XWiki.SearchSuggestConfig to your profile page, and an object of type XWiki.SearchSuggestSourceClass as well. On this last object, set both name and icon properties to $services.logging.getLogger("attacker").error("I got programming: $services.security.authorization.hasAccess('programming')") and limit and engine to {{/html}}{{async}}{{velocity}}$services.logging.getLogger("attacker").error("I got programming: $services.security.authorization.hasAccess('programming')"){{/velocity}}{{/async}}. Save and display the page. If the logs contain any message ERROR attacker - I got programming: true then the instance is vulnerable.
Patches
This vulnerability has been patched in XWiki 14.10.21, 15.5.5 and 15.10.2.
Workarounds
We're not aware of any workaround except upgrading.
References
Impact
Any user with edit right on any page can perform arbitrary remote code execution by adding instances of
XWiki.SearchSuggestConfigandXWiki.SearchSuggestSourceClassto their user profile or any other page. This compromises the confidentiality, integrity and availability of the whole XWiki installation.To reproduce on an instance, as a user without script nor programming rights, add an object of type
XWiki.SearchSuggestConfigto your profile page, and an object of typeXWiki.SearchSuggestSourceClassas well. On this last object, set bothnameandiconproperties to$services.logging.getLogger("attacker").error("I got programming: $services.security.authorization.hasAccess('programming')")andlimitandengineto{{/html}}{{async}}{{velocity}}$services.logging.getLogger("attacker").error("I got programming: $services.security.authorization.hasAccess('programming')"){{/velocity}}{{/async}}. Save and display the page. If the logs contain any messageERROR attacker - I got programming: truethen the instance is vulnerable.Patches
This vulnerability has been patched in XWiki 14.10.21, 15.5.5 and 15.10.2.
Workarounds
We're not aware of any workaround except upgrading.
References