Skip to content

Commit f7d3bea

Browse files
author
Dennis Labordus
committed
Fixed Security Issue.
Signed-off-by: Dennis Labordus <[email protected]>
1 parent 8e56209 commit f7d3bea

File tree

1 file changed

+11
-2
lines changed
  • service/src/main/java/org/lfenergy/compas/scl/validator/common

1 file changed

+11
-2
lines changed

service/src/main/java/org/lfenergy/compas/scl/validator/common/NsdocInfo.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import org.lfenergy.compas.scl.validator.exception.SclValidatorException;
77

8+
import javax.xml.XMLConstants;
89
import javax.xml.stream.XMLInputFactory;
910
import javax.xml.stream.XMLStreamException;
1011
import javax.xml.stream.events.StartElement;
@@ -25,8 +26,16 @@ public class NsdocInfo {
2526

2627
public NsdocInfo(File file) {
2728
try (var fis = new FileInputStream(file)) {
28-
var xmlInputFactory = XMLInputFactory.newInstance();
29-
var reader = xmlInputFactory.createXMLEventReader(fis);
29+
var factory = XMLInputFactory.newInstance();
30+
// to be compliant, completely disable DOCTYPE declaration:
31+
factory.setProperty(XMLInputFactory.SUPPORT_DTD, false);
32+
// or completely disable external entities declarations:
33+
factory.setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, Boolean.FALSE);
34+
// or prohibit the use of all protocols by external entities:
35+
factory.setProperty(XMLConstants.ACCESS_EXTERNAL_DTD, "");
36+
factory.setProperty(XMLConstants.ACCESS_EXTERNAL_SCHEMA, "");
37+
38+
var reader = factory.createXMLEventReader(fis);
3039

3140
while (id == null && reader.hasNext()) {
3241
processEvent(reader.nextEvent());

0 commit comments

Comments
 (0)