Skip to content

Commit 98a74c2

Browse files
committed
JIRA-49: Don't access DTDs or Schemas
1 parent 1f0c7eb commit 98a74c2

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

Diff for: jira-macro/jira-macro-default/pom.xml

+6
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,12 @@
103103
<artifactId>xwiki-rendering-test</artifactId>
104104
<version>${rendering.version}</version>
105105
<scope>test</scope>
106+
<exclusions>
107+
<exclusion>
108+
<groupId>xerces</groupId>
109+
<artifactId>xercesImpl</artifactId>
110+
</exclusion>
111+
</exclusions>
106112
</dependency>
107113
<dependency>
108114
<groupId>com.github.tomakehurst</groupId>

Diff for: jira-macro/jira-macro-default/src/main/java/org/xwiki/contrib/jira/macro/internal/source/HTTPJIRAFetcher.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import java.net.URL;
2424

2525
import javax.inject.Singleton;
26+
import javax.xml.XMLConstants;
2627

2728
import org.apache.commons.lang3.StringUtils;
2829
import org.apache.http.HttpEntity;
@@ -132,6 +133,10 @@ protected HttpClientBuilder createHttpClientBuilder(JIRAServer jiraServer)
132133
private SAXBuilder createSAXBuilder()
133134
{
134135
// Note: SAXBuilder is not thread-safe which is why we're instantiating a new one every time.
135-
return new SAXBuilder();
136+
SAXBuilder builder = new SAXBuilder();
137+
// Note: Prevent XXE attacks
138+
builder.setProperty(XMLConstants.ACCESS_EXTERNAL_DTD, "");
139+
builder.setProperty(XMLConstants.ACCESS_EXTERNAL_SCHEMA, "");
140+
return builder;
136141
}
137142
}

0 commit comments

Comments
 (0)