Skip to content

Commit 2c02efc

Browse files
author
Shamal Faily
committed
Fix XML internal entity expansion risk
1 parent ca838ef commit 2c02efc

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

cairis/mio/ModelImport.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
import cairis.core.DefaultParametersFactory
5050
import xml.sax
5151
import defusedxml.sax
52+
import io
5253
from openpyxl import load_workbook
5354
from cairis.core.ARM import *
5455

@@ -457,7 +458,11 @@ def importAssociationsFile(importFile,session_id = None):
457458
def importAssociationsString(buf,session_id = None):
458459
try:
459460
handler = AssociationsContentHandler(session_id = session_id)
460-
xml.sax.parseString(buf,handler)
461+
parser = defusedxml.sax.make_parser()
462+
parser.forbid_external = False
463+
parser.setContentHandler(handler)
464+
parser.setEntityResolver(handler)
465+
parser.parse(io.StringIO(buf))
461466
return importAssociations(handler.manualAssociations(),handler.goalAssociations(),handler.dependencyAssociations(),session_id = session_id)
462467
except xml.sax.SAXException as e:
463468
raise ARMException("Error parsing" + importFile + ": " + e.getMessage())

0 commit comments

Comments
 (0)