Skip to content

Commit 1f285b8

Browse files
committed
Python: Rename to XmlParsingVulnerabilityKind
To keep up with style guide
1 parent ab59d5c commit 1f285b8

File tree

8 files changed

+21
-21
lines changed

8 files changed

+21
-21
lines changed

python/ql/lib/semmle/python/Concepts.qll

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -558,8 +558,8 @@ module XML {
558558
*
559559
* See PoC at `python/PoCs/XmlParsing/PoC.py` for some tests of vulnerable XML parsing.
560560
*/
561-
class XMLParsingVulnerabilityKind extends string {
562-
XMLParsingVulnerabilityKind() {
561+
class XmlParsingVulnerabilityKind extends string {
562+
XmlParsingVulnerabilityKind() {
563563
this in ["Billion Laughs", "Quadratic Blowup", "XXE", "DTD retrieval"]
564564
}
565565

@@ -586,7 +586,7 @@ module XML {
586586
/**
587587
* Holds if this XML parsing is vulnerable to `kind`.
588588
*/
589-
predicate vulnerableTo(XMLParsingVulnerabilityKind kind) { super.vulnerableTo(kind) }
589+
predicate vulnerableTo(XmlParsingVulnerabilityKind kind) { super.vulnerableTo(kind) }
590590
}
591591

592592
/** Provides classes for modeling XML parsing APIs. */
@@ -601,7 +601,7 @@ module XML {
601601
/**
602602
* Holds if this XML parsing is vulnerable to `kind`.
603603
*/
604-
abstract predicate vulnerableTo(XMLParsingVulnerabilityKind kind);
604+
abstract predicate vulnerableTo(XmlParsingVulnerabilityKind kind);
605605

606606
override string getFormat() { result = "XML" }
607607
}

python/ql/lib/semmle/python/frameworks/Lxml.qll

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ private module Lxml {
121121
*/
122122
abstract class InstanceSource extends DataFlow::LocalSourceNode {
123123
/** Holds if this instance is vulnerable to `kind`. */
124-
abstract predicate vulnerableTo(XML::XMLParsingVulnerabilityKind kind);
124+
abstract predicate vulnerableTo(XML::XmlParsingVulnerabilityKind kind);
125125
}
126126

127127
/**
@@ -135,7 +135,7 @@ private module Lxml {
135135
}
136136

137137
// NOTE: it's not possible to change settings of a parser after constructing it
138-
override predicate vulnerableTo(XML::XMLParsingVulnerabilityKind kind) {
138+
override predicate vulnerableTo(XML::XmlParsingVulnerabilityKind kind) {
139139
kind.isXxe() and
140140
(
141141
// resolve_entities has default True
@@ -165,7 +165,7 @@ private module Lxml {
165165
API::moduleImport("lxml").getMember("etree").getMember("get_default_parser").getACall()
166166
}
167167

168-
override predicate vulnerableTo(XML::XMLParsingVulnerabilityKind kind) {
168+
override predicate vulnerableTo(XML::XmlParsingVulnerabilityKind kind) {
169169
// as highlighted by
170170
// https://lxml.de/apidoc/lxml.etree.html?highlight=xmlparser#lxml.etree.XMLParser
171171
// by default XXE is allow. so as long as the default parser has not been
@@ -189,7 +189,7 @@ private module Lxml {
189189
}
190190

191191
/** Gets a reference to an `lxml.etree` parser instance, that is vulnerable to `kind`. */
192-
DataFlow::Node instanceVulnerableTo(XML::XMLParsingVulnerabilityKind kind) {
192+
DataFlow::Node instanceVulnerableTo(XML::XmlParsingVulnerabilityKind kind) {
193193
exists(InstanceSource origin | result = instance(origin) and origin.vulnerableTo(kind))
194194
}
195195

@@ -201,7 +201,7 @@ private module Lxml {
201201

202202
override DataFlow::Node getAnInput() { result in [this.getArg(0), this.getArgByName("data")] }
203203

204-
override predicate vulnerableTo(XML::XMLParsingVulnerabilityKind kind) {
204+
override predicate vulnerableTo(XML::XmlParsingVulnerabilityKind kind) {
205205
this.calls(instanceVulnerableTo(kind), "feed")
206206
}
207207

@@ -256,7 +256,7 @@ private module Lxml {
256256

257257
DataFlow::Node getParserArg() { result in [this.getArg(1), this.getArgByName("parser")] }
258258

259-
override predicate vulnerableTo(XML::XMLParsingVulnerabilityKind kind) {
259+
override predicate vulnerableTo(XML::XmlParsingVulnerabilityKind kind) {
260260
this.getParserArg() = XMLParser::instanceVulnerableTo(kind)
261261
or
262262
kind.isXxe() and
@@ -313,7 +313,7 @@ private module Lxml {
313313

314314
override DataFlow::Node getAnInput() { result in [this.getArg(0), this.getArgByName("source")] }
315315

316-
override predicate vulnerableTo(XML::XMLParsingVulnerabilityKind kind) {
316+
override predicate vulnerableTo(XML::XmlParsingVulnerabilityKind kind) {
317317
// note that there is no `resolve_entities` argument, so it's not possible to turn off XXE :O
318318
kind.isXxe()
319319
or

python/ql/lib/semmle/python/frameworks/Stdlib.qll

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3241,7 +3241,7 @@ private module StdlibPrivate {
32413241

32423242
override DataFlow::Node getAnInput() { result in [this.getArg(0), this.getArgByName("data")] }
32433243

3244-
override predicate vulnerableTo(XML::XMLParsingVulnerabilityKind kind) {
3244+
override predicate vulnerableTo(XML::XmlParsingVulnerabilityKind kind) {
32453245
kind.isBillionLaughs() or kind.isQuadraticBlowup()
32463246
}
32473247

@@ -3298,7 +3298,7 @@ private module StdlibPrivate {
32983298
]
32993299
}
33003300

3301-
override predicate vulnerableTo(XML::XMLParsingVulnerabilityKind kind) {
3301+
override predicate vulnerableTo(XML::XmlParsingVulnerabilityKind kind) {
33023302
// note: it does not matter what `xml.etree` parser you are using, you cannot
33033303
// change the security features anyway :|
33043304
kind.isBillionLaughs() or kind.isQuadraticBlowup()
@@ -3459,7 +3459,7 @@ private module StdlibPrivate {
34593459

34603460
override DataFlow::Node getAnInput() { result in [this.getArg(0), this.getArgByName("source")] }
34613461

3462-
override predicate vulnerableTo(XML::XMLParsingVulnerabilityKind kind) {
3462+
override predicate vulnerableTo(XML::XmlParsingVulnerabilityKind kind) {
34633463
// always vuln to these
34643464
(kind.isBillionLaughs() or kind.isQuadraticBlowup())
34653465
or
@@ -3512,7 +3512,7 @@ private module StdlibPrivate {
35123512
]
35133513
}
35143514

3515-
override predicate vulnerableTo(XML::XMLParsingVulnerabilityKind kind) {
3515+
override predicate vulnerableTo(XML::XmlParsingVulnerabilityKind kind) {
35163516
// always vuln to these
35173517
(kind.isBillionLaughs() or kind.isQuadraticBlowup())
35183518
}
@@ -3586,7 +3586,7 @@ private module StdlibPrivate {
35863586

35873587
DataFlow::Node getParserArg() { result in [this.getArg(1), this.getArgByName("parser")] }
35883588

3589-
override predicate vulnerableTo(XML::XMLParsingVulnerabilityKind kind) {
3589+
override predicate vulnerableTo(XML::XmlParsingVulnerabilityKind kind) {
35903590
this.getParserArg() = saxParserWithFeatureExternalGesTurnedOn() and
35913591
(kind.isXxe() or kind.isDtdRetrieval())
35923592
or

python/ql/lib/semmle/python/frameworks/Xmltodict.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ private module Xmltodict {
2727
result in [this.getArg(0), this.getArgByName("xml_input")]
2828
}
2929

30-
override predicate vulnerableTo(XML::XMLParsingVulnerabilityKind kind) {
30+
override predicate vulnerableTo(XML::XmlParsingVulnerabilityKind kind) {
3131
(kind.isBillionLaughs() or kind.isQuadraticBlowup()) and
3232
this.getArgByName("disable_entities").getALocalSource().asExpr() = any(False f)
3333
}

python/ql/src/experimental/Security/CWE-611/SimpleXmlRpcServer.ql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ from DataFlow::CallCfgNode call, string kinds
1717
where
1818
call = API::moduleImport("xmlrpc").getMember("server").getMember("SimpleXMLRPCServer").getACall() and
1919
kinds =
20-
strictconcat(XML::XMLParsingVulnerabilityKind kind |
20+
strictconcat(XML::XmlParsingVulnerabilityKind kind |
2121
kind.isBillionLaughs() or kind.isQuadraticBlowup()
2222
|
2323
kind, ", "

python/ql/src/experimental/semmle/python/security/dataflow/XmlBombCustomizations.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ module XmlBomb {
4040
*/
4141
class XmlParsingWithEntityResolution extends Sink {
4242
XmlParsingWithEntityResolution() {
43-
exists(XML::XmlParsing parsing, XML::XMLParsingVulnerabilityKind kind |
43+
exists(XML::XmlParsing parsing, XML::XmlParsingVulnerabilityKind kind |
4444
(kind.isBillionLaughs() or kind.isQuadraticBlowup()) and
4545
parsing.vulnerableTo(kind) and
4646
this = parsing.getAnInput()

python/ql/src/experimental/semmle/python/security/dataflow/XxeCustomizations.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ module Xxe {
4040
*/
4141
class XmlParsingWithExternalEntityResolution extends Sink {
4242
XmlParsingWithExternalEntityResolution() {
43-
exists(XML::XmlParsing parsing, XML::XMLParsingVulnerabilityKind kind |
43+
exists(XML::XmlParsing parsing, XML::XmlParsingVulnerabilityKind kind |
4444
kind.isXxe() and
4545
parsing.vulnerableTo(kind) and
4646
this = parsing.getAnInput()

python/ql/test/experimental/meta/ConceptsTest.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -547,7 +547,7 @@ class XmlParsingTest extends InlineExpectationsTest {
547547

548548
override predicate hasActualResult(Location location, string element, string tag, string value) {
549549
exists(location.getFile().getRelativePath()) and
550-
exists(XML::XmlParsing parsing, XML::XMLParsingVulnerabilityKind kind |
550+
exists(XML::XmlParsing parsing, XML::XmlParsingVulnerabilityKind kind |
551551
parsing.vulnerableTo(kind) and
552552
location = parsing.getLocation() and
553553
element = parsing.toString() and

0 commit comments

Comments
 (0)