@@ -5,14 +5,13 @@ import semmle.python.ApiGraphs
5
5
import semmle.python.dataflow.new.RemoteFlowSources
6
6
import semmle.python.dataflow.new.internal.DataFlowPublic
7
7
import FileAndFormRemoteFlowSource:: FileAndFormRemoteFlowSource
8
+ import codeql.util.Unit
8
9
9
10
module DecompressionBomb {
10
11
/**
11
12
* The additional taint steps that need for creating taint tracking or dataflow.
12
13
*/
13
- abstract class AdditionalTaintStep extends string {
14
- AdditionalTaintStep ( ) { this = "AdditionalTaintStep" }
15
-
14
+ class AdditionalTaintStep extends Unit {
16
15
/**
17
16
* Holds if there is a additional taint step between pred and succ.
18
17
*/
@@ -98,8 +97,6 @@ module ZipFile {
98
97
* ```
99
98
*/
100
99
class DecompressionAdditionalTaintStep extends DecompressionBomb:: AdditionalTaintStep {
101
- DecompressionAdditionalTaintStep ( ) { this = "AdditionalTaintStep" }
102
-
103
100
override predicate isAdditionalTaintStep ( DataFlow:: Node nodeFrom , DataFlow:: Node nodeTo ) {
104
101
exists ( API:: Node zipFileInstance | zipFileInstance = zipFileClass ( ) |
105
102
nodeFrom =
@@ -172,8 +169,6 @@ module TarFile {
172
169
* The Additional taint steps that are necessary for data flow query
173
170
*/
174
171
class DecompressionAdditionalTaintStep extends DecompressionBomb:: AdditionalTaintStep {
175
- DecompressionAdditionalTaintStep ( ) { this = "AdditionalTaintStep" }
176
-
177
172
override predicate isAdditionalTaintStep ( DataFlow:: Node nodeFrom , DataFlow:: Node nodeTo ) {
178
173
exists ( API:: Node tarfileInstance | tarfileInstance = tarfileExtractMember ( ) |
179
174
nodeFrom = tarfileInstance .getACall ( ) .getParameter ( 0 , "name" ) .asSink ( ) and
0 commit comments