CVE-2025-31487
Description
The XWiki JIRA extension provides various integration points between XWiki and JIRA (macros, UI, CKEditor plugin). If the JIRA macro is installed, any logged in XWiki user could edit his/her user profile wiki page and use that JIRA macro, specifying a fake JIRA URL that returns an XML specifying a DOCTYPE pointing to a local file on the XWiki server host and displaying that file's content in one of the returned JIRA fields (such as the summary or description for example). The vulnerability has been patched in the JIRA Extension v8.6.5.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
org.xwiki.contrib.jira:jira-macro-defaultMaven | >= 4.2, < 8.5.6 | 8.5.6 |
Patches
25049e352d16fJIRA-49: Don't access DTDs or Schemas
2 files changed · +3 −10
jira-macro/jira-macro-default/pom.xml+0 −6 modified@@ -103,12 +103,6 @@ <artifactId>xwiki-rendering-test</artifactId> <version>${rendering.version}</version> <scope>test</scope> - <exclusions> - <exclusion> - <groupId>xerces</groupId> - <artifactId>xercesImpl</artifactId> - </exclusion> - </exclusions> </dependency> <dependency> <groupId>com.github.tomakehurst</groupId>
jira-macro/jira-macro-default/src/main/java/org/xwiki/contrib/jira/macro/internal/source/HTTPJIRAFetcher.java+3 −4 modified@@ -23,7 +23,6 @@ import java.net.URL; import javax.inject.Singleton; -import javax.xml.XMLConstants; import org.apache.commons.lang3.StringUtils; import org.apache.http.HttpEntity; @@ -134,9 +133,9 @@ private SAXBuilder createSAXBuilder() { // Note: SAXBuilder is not thread-safe which is why we're instantiating a new one every time. SAXBuilder builder = new SAXBuilder(); - // Note: Prevent XXE attacks - builder.setProperty(XMLConstants.ACCESS_EXTERNAL_DTD, ""); - builder.setProperty(XMLConstants.ACCESS_EXTERNAL_SCHEMA, ""); + // Note: Prevent XXE attacks by disabling completely DTDs. This is possible since JIRA returns an XML content + // that doesn't use a DTD. + builder.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true); return builder; } }
98a74c2a516bJIRA-49: Don't access DTDs or Schemas
2 files changed · +12 −1
jira-macro/jira-macro-default/pom.xml+6 −0 modified@@ -103,6 +103,12 @@ <artifactId>xwiki-rendering-test</artifactId> <version>${rendering.version}</version> <scope>test</scope> + <exclusions> + <exclusion> + <groupId>xerces</groupId> + <artifactId>xercesImpl</artifactId> + </exclusion> + </exclusions> </dependency> <dependency> <groupId>com.github.tomakehurst</groupId>
jira-macro/jira-macro-default/src/main/java/org/xwiki/contrib/jira/macro/internal/source/HTTPJIRAFetcher.java+6 −1 modified@@ -23,6 +23,7 @@ import java.net.URL; import javax.inject.Singleton; +import javax.xml.XMLConstants; import org.apache.commons.lang3.StringUtils; import org.apache.http.HttpEntity; @@ -132,6 +133,10 @@ protected HttpClientBuilder createHttpClientBuilder(JIRAServer jiraServer) private SAXBuilder createSAXBuilder() { // Note: SAXBuilder is not thread-safe which is why we're instantiating a new one every time. - return new SAXBuilder(); + SAXBuilder builder = new SAXBuilder(); + // Note: Prevent XXE attacks + builder.setProperty(XMLConstants.ACCESS_EXTERNAL_DTD, ""); + builder.setProperty(XMLConstants.ACCESS_EXTERNAL_SCHEMA, ""); + return builder; } }
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
6- github.com/advisories/GHSA-wc53-4255-gw3fghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2025-31487ghsaADVISORY
- github.com/xwiki-contrib/jira/commit/5049e352d16f8356734de70daf1202301f170ee6nvdWEB
- github.com/xwiki-contrib/jira/commit/98a74c2a516b42689c73b13ecd94e9c1998fa9cbnvdWEB
- github.com/xwiki-contrib/jira/security/advisories/GHSA-wc53-4255-gw3fnvdWEB
- jira.xwiki.org/browse/JIRA-49nvdWEB
News mentions
0No linked articles in our index yet.