It's possible to store JavaScript in an attachment name, which will be executed by anyone trying to move the corresponding attachment.
For example, an attachment with name ><img src=1 onerror=alert(1)>.jpg
will execute the alert.
This issue has been patched in XWiki 14.4RC1.
It is possible to fix the vulnerability by copying moveStep1.vm to webapp/xwiki/templates/moveStep1.vm
and replace
#set($titleToDisplay = $services.localization.render('attachment.move.title',
[$attachment.name, $escapetool.xml($doc.plainTitle), $doc.getURL()]))
by
#set($titleToDisplay = $services.localization.render('attachment.move.title', [
$escapetool.xml($attachment.name),
$escapetool.xml($doc.plainTitle),
$escapetool.xml($doc.getURL())
]))
See the corresponding patch.
If you have any questions or comments about this advisory:
{ "nvd_published_at": "2022-09-08T21:15:00Z", "github_reviewed_at": "2022-09-16T17:39:08Z", "severity": "HIGH", "github_reviewed": true, "cwe_ids": [ "CWE-79", "CWE-80" ] }