Skip to content

Commit 2a9f2e5

Browse files
authored
SecureXmlParsing: log failures (#5672)
* SecureXmlParsing: log failures we have a diverged copy of this class in codescience that I'd like to get rid of * also add FEATURE_SECURE_PROCESSING for good measure
1 parent b3378f6 commit 2a9f2e5

File tree

5 files changed

+18
-8
lines changed

5 files changed

+18
-8
lines changed

joern-cli/frontends/csharpsrc2cpg/src/main/scala/io/joern/csharpsrc2cpg/passes/DependencyPass.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package io.joern.csharpsrc2cpg.passes
22

3-
import io.joern.semanticcpg.utils.SecureXmlParsing
3+
import io.shiftleft.semanticcpg.utils.SecureXmlParsing
44
import io.shiftleft.semanticcpg.utils.FileUtil.*
55
import io.shiftleft.codepropertygraph.generated.Cpg
66
import io.shiftleft.codepropertygraph.generated.nodes.NewDependency

joern-cli/frontends/csharpsrc2cpg/src/main/scala/io/joern/csharpsrc2cpg/utils/ImplicitUsingsCollector.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package io.joern.csharpsrc2cpg.utils
22

3-
import io.joern.semanticcpg.utils.SecureXmlParsing
4-
3+
import io.shiftleft.semanticcpg.utils.SecureXmlParsing
54
import io.shiftleft.semanticcpg.utils.FileUtil.*
65

76
import java.nio.file.Paths

querydb/src/main/scala/io/joern/scanners/android/Misconfigurations.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ object Misconfigurations extends QueryBundle {
2020
|""".stripMargin,
2121
score = 3,
2222
withStrRep({ cpg =>
23-
import io.joern.semanticcpg.utils.SecureXmlParsing
23+
import io.shiftleft.semanticcpg.utils.SecureXmlParsing
2424

2525
val androidUri = "http://schemas.android.com/apk/res/android"
2626
cpg.configFile

semanticcpg/src/main/scala/io/shiftleft/semanticcpg/language/android/ConfigFileTraversal.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package io.shiftleft.semanticcpg.language.android
22

3-
import io.joern.semanticcpg.utils.SecureXmlParsing
3+
import io.shiftleft.semanticcpg.utils.SecureXmlParsing
44
import io.shiftleft.codepropertygraph.generated.nodes.ConfigFile
55
import io.shiftleft.semanticcpg.language.*
66

semanticcpg/src/main/scala/io/shiftleft/semanticcpg/utils/SecureXmlParsing.scala

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
1-
package io.joern.semanticcpg.utils
1+
package io.shiftleft.semanticcpg.utils
22

3+
import org.slf4j.{Logger, LoggerFactory}
4+
5+
import javax.xml.XMLConstants
36
import javax.xml.parsers.SAXParserFactory
4-
import scala.util.Try
7+
import scala.util.{Failure, Success, Try}
58
import scala.xml.{Elem, XML}
69

710
object SecureXmlParsing {
@@ -18,8 +21,16 @@ object SecureXmlParsing {
1821
spf.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false)
1922
spf.setFeature("http://xml.org/sax/features/external-parameter-entities", false)
2023
spf.setFeature("http://xml.org/sax/features/external-general-entities", false)
24+
spf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true)
2125

2226
XML.withSAXParser(spf.newSAXParser()).loadString(content)
23-
}.toOption
27+
} match {
28+
case Success(elem) => Some(elem)
29+
case Failure(exception) =>
30+
logger.warn(s"Error creating XML secure parser: ${exception.getMessage}")
31+
None
32+
}
2433
}
34+
35+
private val logger: Logger = LoggerFactory.getLogger(classOf[SecureXmlParsing.type])
2536
}

0 commit comments

Comments
 (0)