Critical severity9.1NVD Advisory· Published Mar 7, 2025· Updated Apr 15, 2026
CVE-2025-27603
CVE-2025-27603
Description
XWiki Confluence Migrator Pro helps admins to import confluence packages into their XWiki instance. A user that doesn't have programming rights can execute arbitrary code due to an unescaped translation when creating a page using the Migration Page template. This vulnerability is fixed in 1.2.0.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
com.xwiki.confluencepro:application-confluence-migrator-pro-uiMaven | >= 1.0, < 1.2.0 | 1.2.0 |
Patches
2af210fc0ada736cef2271bd4[Misc] Improve escaping.
1 file changed · +8 −8
application-confluence-migrator-pro-ui/src/main/resources/ConfluenceMigratorPro/Code/MigrationSheet.xml+8 −8 modified@@ -66,15 +66,15 @@ #else #set ($propertyDescriptorInputId = "qproperty_outputProperties[]") #end - #set ($propertyDescriptorLabel = $services.localization.render("confluencepro.job.question.advanced.${propertyDescriptorId}")) + #set ($propertyDescriptorLabel = $escapetool.xml($services.localization.render("confluencepro.job.question.advanced.${propertyDescriptorId}"))) #if ("$!propertyDescriptorLabel" == "confluencepro.job.question.advanced.$propertyDescriptorId") #set ($propertyDescriptorLabel = $propertyDescriptor.name) #end - #set ($propertyDescriptorAbout = $services.localization.render("confluencepro.job.question.advanced.${propertyDescriptorId}.description")) + #set ($propertyDescriptorAbout = $escapetool.xml($services.localization.render("confluencepro.job.question.advanced.${propertyDescriptorId}.description"))) #if ("$!propertyDescriptorAbout" == "confluencepro.job.question.advanced.${propertyDescriptorId}.description") #set ($propertyDescriptorAbout = $propertyDescriptor.description) #end - #set ($propertyDescriptorSupportedFormats = $services.localization.render("confluencepro.job.question.advanced.${propertyDescriptorId}.supportedformats")) + #set ($propertyDescriptorSupportedFormats = $escapetool.xml($services.localization.render("confluencepro.job.question.advanced.${propertyDescriptorId}.supportedformats"))) <dt> <label for="$!escapetool.xml($propertyDescriptorId)">$propertyDescriptorLabel</label> #if ("$!propertyDescriptorAbout" != '') @@ -140,10 +140,10 @@ <div class="cfmTitleIcon"> $services.icon.renderHTML('caret-down') </div> - $services.localization.render('confluencepro.job.question.advanced.link') + $escapetool.xml($services.localization.render('confluencepro.job.question.advanced.link')) </a> <div class="xform collapse confluence-migrator-collapse" id="advancedInputFields"> - <h2>$services.localization.render('confluencepro.job.question.advanced.input')</h2> + <h2>$escapetool.xml($services.localization.render('confluencepro.job.question.advanced.input'))</h2> <dl> <input type="hidden" id="cfm-input-properties" name="ConfluenceMigratorPro.Code.MigrationClass_0_inputProperties" /> #set ($descriptor = $services.filter.getInputFilterStreamDescriptor('confluence+xml')) @@ -165,7 +165,7 @@ <div class="box warningmessage"> <p>$escapetool.xml($services.localization.render('confluencepro.job.onlyrights.warning'))</p> </div> - <h2>$services.localization.render('confluencepro.job.question.advanced.output')</h2> + <h2>$escapetool.xml($services.localization.render('confluencepro.job.question.advanced.output'))</h2> <dl> <input type="hidden" id="cfm-output-properties" name="ConfluenceMigratorPro.Code.MigrationClass_0_outputProperties" /> #set ($descriptor = $services.filter.getOutputFilterStreamDescriptor('xwiki+instance')) @@ -416,10 +416,10 @@ </div> #set($titleKey = "${translationPrefix}.label") #if ($services.localization.get($titleKey)) - <h2>$services.localization.render($titleKey)</h2> + <h2>$escapetool.xml($services.localization.render($titleKey))</h2> #set($titleHintKey = "${translationPrefix}.hint") #if ($services.localization.get($titleHintKey)) - <p class="text-muted small">$services.localization.render($titleHintKey)</p> + <p class="text-muted small">$escapetool.xml($services.localization.render($titleHintKey))</p> #end #end #if (!$finished)
Vulnerability mechanics
Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
4- github.com/advisories/GHSA-6qvp-39mm-95v8ghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2025-27603ghsaADVISORY
- github.com/xwikisas/application-confluence-migrator-pro/commit/36cef2271bd429773698ca3a21e47b6d51d6377dnvdWEB
- github.com/xwikisas/application-confluence-migrator-pro/security/advisories/GHSA-6qvp-39mm-95v8nvdWEB
News mentions
0No linked articles in our index yet.