mirror of
https://github.com/github/codeql.git
synced 2026-04-30 19:26:02 +02:00
Fix undetected tests
This commit is contained in:
@@ -142,6 +142,8 @@ private module XML {
|
||||
exists(XMLParser xmlParser |
|
||||
xmlParser.mayBeDangerous() and this.getArgByName("parser").getALocalSource() = xmlParser
|
||||
)
|
||||
or
|
||||
not exists(this.getArgByName("parser"))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -19,17 +19,19 @@ class XXEFlowConfig extends TaintTracking::Configuration {
|
||||
|
||||
override predicate isSink(DataFlow::Node sink) {
|
||||
exists(XMLParsing xmlParsing | xmlParsing.mayBeDangerous() and sink = xmlParsing.getAnInput())
|
||||
or
|
||||
exists(XMLParser xmlParser | sink = xmlParser.getAnInput() and xmlParser.mayBeDangerous())
|
||||
}
|
||||
|
||||
override predicate isSanitizerGuard(DataFlow::BarrierGuard guard) {
|
||||
guard instanceof StringConstCompare
|
||||
}
|
||||
|
||||
override predicate isAdditionalTaintStep(DataFlow::Node nodeFrom, DataFlow::Node nodeIn) {
|
||||
override predicate isAdditionalTaintStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) {
|
||||
exists(DataFlow::CallCfgNode ioCalls |
|
||||
ioCalls = API::moduleImport("io").getMember(["StringIO", "BytesIO"]).getACall() and
|
||||
nodeFrom = ioCalls and
|
||||
nodeIn = ioCalls.getArg(0)
|
||||
nodeFrom = ioCalls.getArg(0) and
|
||||
nodeTo = ioCalls
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
from flask import request, Flask
|
||||
from io import StringIO
|
||||
from io import StringIO, BytesIO
|
||||
import xml.etree
|
||||
import xml.etree.ElementTree
|
||||
import lxml.etree
|
||||
@@ -42,7 +42,7 @@ def xmltodict_parse():
|
||||
|
||||
|
||||
@app.route("/lxml.etree.XMLParser+lxml.etree.fromstring")
|
||||
def test1():
|
||||
def lxml_XMLParser_fromstring():
|
||||
xml_content = request.args['xml_content']
|
||||
|
||||
parser = lxml.etree.XMLParser()
|
||||
@@ -50,7 +50,7 @@ def test1():
|
||||
|
||||
|
||||
@app.route("/lxml.etree.get_default_parser+lxml.etree.fromstring")
|
||||
def test1():
|
||||
def lxml_defaultParser_fromstring():
|
||||
xml_content = request.args['xml_content']
|
||||
|
||||
parser = lxml.etree.get_default_parser()
|
||||
@@ -58,7 +58,7 @@ def test1():
|
||||
|
||||
|
||||
@app.route("/lxml.etree.XMLParser+xml.etree.ElementTree.fromstring")
|
||||
def test1():
|
||||
def lxml_XMLParser_xml_fromstring():
|
||||
xml_content = request.args['xml_content']
|
||||
|
||||
parser = lxml.etree.XMLParser()
|
||||
@@ -66,7 +66,7 @@ def test1():
|
||||
|
||||
|
||||
@app.route("/lxml.etree.XMLParser+xml.etree.ElementTree.parse")
|
||||
def test1():
|
||||
def lxml_XMLParser_xml_parse():
|
||||
xml_content = request.args['xml_content']
|
||||
|
||||
parser = lxml.etree.XMLParser()
|
||||
|
||||
@@ -22,14 +22,14 @@ class MainHandler(xml.sax.ContentHandler):
|
||||
|
||||
|
||||
@app.route("/MainHandler")
|
||||
def test1():
|
||||
def mainHandler():
|
||||
xml_content = request.args['xml_content']
|
||||
|
||||
return MainHandler().parse(StringIO(xml_content))
|
||||
|
||||
|
||||
@app.route("/xml.sax.make_parser()+MainHandler")
|
||||
def test1():
|
||||
def xml_makeparser_MainHandler():
|
||||
xml_content = request.args['xml_content']
|
||||
|
||||
BadHandler = MainHandler()
|
||||
@@ -40,7 +40,7 @@ def test1():
|
||||
|
||||
|
||||
@app.route("/xml.sax.make_parser()+MainHandler-xml.sax.handler.feature_external_ges_False")
|
||||
def test1():
|
||||
def xml_makeparser_MainHandler_entitiesFalse():
|
||||
xml_content = request.args['xml_content']
|
||||
|
||||
BadHandler = MainHandler()
|
||||
@@ -55,7 +55,7 @@ def test1():
|
||||
|
||||
|
||||
@app.route("/xml.sax.make_parser()+MainHandler-xml.sax.handler.feature_external_ges_True")
|
||||
def test1():
|
||||
def xml_makeparser_MainHandler_entitiesTrue():
|
||||
xml_content = request.args['xml_content']
|
||||
|
||||
GoodHandler = MainHandler()
|
||||
@@ -67,7 +67,7 @@ def test1():
|
||||
|
||||
|
||||
@app.route("/xml.sax.make_parser()+xml.dom.minidom.parse-xml.sax.handler.feature_external_ges_True")
|
||||
def test1():
|
||||
def xml_makeparser_minidom_entitiesTrue():
|
||||
xml_content = request.args['xml_content']
|
||||
|
||||
parser = xml.sax.make_parser()
|
||||
|
||||
Reference in New Issue
Block a user