When an admin disables a user account, the user's profile is executed with the admin's rights. This allows a user to place malicious code in the user profile before getting an admin to disable the user account.
To reproduce, as a user without script nor programming rights, edit the about section of your user profile and add {{groovy}}services.logging.getLogger("attacker").error("Hello from Groovy!"){{/groovy}}
.
As an admin, go to the user profile and click the "Disable this account" button.
Then, reload the page. If the logs show attacker - Hello from Groovy!
then the instance is vulnerable.
This has been patched in XWiki 14.10.21, 15.5.5, 15.10.6 and 16.0.0.
We're not aware of any workaround except upgrading.
{ "nvd_published_at": "2024-06-20T23:15:52Z", "cwe_ids": [ "CWE-266", "CWE-94" ], "severity": "CRITICAL", "github_reviewed": true, "github_reviewed_at": "2024-06-20T16:19:14Z" }