Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit a683394

Browse files
committed
remove additional taint steps and flow states
1 parent d31711b commit a683394

2 files changed

Lines changed: 67 additions & 314 deletions

File tree

java/ql/src/experimental/Security/CWE/CWE-522-DecompressionBombs/DecompressionBomb.ql

Lines changed: 7 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -15,37 +15,19 @@ import java
1515
import semmle.code.java.dataflow.FlowSources
1616
import experimental.semmle.code.java.security.FileAndFormRemoteSource
1717
import experimental.semmle.code.java.security.DecompressionBomb::DecompressionBomb
18+
import semmle.code.java.dataflow.TaintTracking
1819

19-
module DecompressionBombsConfig implements DataFlow::StateConfigSig {
20-
class FlowState = DecompressionState;
20+
module DecompressionBombsConfig implements DataFlow::ConfigSig {
21+
predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource }
2122

22-
predicate isSource(DataFlow::Node source, FlowState state) {
23-
source instanceof RemoteFlowSource and
24-
(
25-
state instanceof ZipFile
26-
or
27-
state instanceof Zip4j
28-
or
29-
state instanceof Inflator
30-
or
31-
state instanceof ApacheCommons
32-
or
33-
state instanceof XerialSnappy
34-
or
35-
state instanceof UtilZip
36-
)
37-
}
38-
39-
predicate isSink(DataFlow::Node sink, FlowState state) { any(Sink s).sink(sink, state) }
23+
predicate isSink(DataFlow::Node sink) { sink instanceof Sink }
4024

41-
predicate isAdditionalFlowStep(
42-
DataFlow::Node nodeFrom, FlowState stateFrom, DataFlow::Node nodeTo, FlowState stateTo
43-
) {
44-
any(AdditionalStep ads).step(nodeFrom, stateFrom, nodeTo, stateTo)
25+
predicate isAdditionalFlowStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) {
26+
any(AdditionalStep ads).step(nodeFrom, nodeTo)
4527
}
4628
}
4729

48-
module DecompressionBombsFlow = TaintTracking::GlobalWithState<DecompressionBombsConfig>;
30+
module DecompressionBombsFlow = TaintTracking::Global<DecompressionBombsConfig>;
4931

5032
import DecompressionBombsFlow::PathGraph
5133

0 commit comments

Comments
 (0)