File tree Expand file tree Collapse file tree 11 files changed +268
-14
lines changed
src/experimental/query-tests/Security/CWE/CWE-409
test/experimental/query-tests/Security/CWE/CWE-409 Expand file tree Collapse file tree 11 files changed +268
-14
lines changed Original file line number Diff line number Diff line change 44
55import cpp
66import semmle.code.cpp.ir.dataflow.TaintTracking
7- import semmle.code.cpp.security.FlowSources
87import semmle.code.cpp.commons.File
98import DecompressionBomb
109
Original file line number Diff line number Diff line change 44
55import cpp
66import semmle.code.cpp.ir.dataflow.TaintTracking
7- import semmle.code.cpp.security.FlowSources
8- import semmle.code.cpp.commons.File
97import DecompressionBomb
108
119/**
12- * The `BZ2_bzDecompress` function as a Flow source
10+ * The `BZ2_bzDecompress` function is used in flow sink
1311 */
1412class BZ2BzDecompressFunction extends DecompressionFunction {
1513 BZ2BzDecompressFunction() { this.hasGlobalName(["BZ2_bzDecompress"]) }
Original file line number Diff line number Diff line change 44
55import cpp
66import semmle.code.cpp.ir.dataflow.TaintTracking
7- import semmle.code.cpp.security.FlowSources
87import DecompressionBomb
98
109/**
@@ -18,3 +17,17 @@ class Archive_read_data_block extends DecompressionFunction {
1817
1918 override int getArchiveParameterIndex() { result = 0 }
2019}
20+
21+ /**
22+ * The `archive_read_open_filename` function as a flow step.
23+ */
24+ class ReadOpenFunction extends DecompressionFlowStep {
25+ ReadOpenFunction() { this.hasGlobalName("archive_read_open_filename") }
26+
27+ override predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) {
28+ exists(FunctionCall fc | fc.getTarget() = this |
29+ node1.asIndirectExpr() = fc.getArgument(1) and
30+ node2.asIndirectExpr() = fc.getArgument(0)
31+ )
32+ }
33+ }
Original file line number Diff line number Diff line change 44
55import cpp
66import semmle.code.cpp.ir.dataflow.TaintTracking
7- import semmle.code.cpp.security.FlowSources
87import DecompressionBomb
98
109/**
@@ -18,7 +17,7 @@ class Mz_zip_entry extends DecompressionFunction {
1817}
1918
2019/**
21- * The `mz_zip_reader_entry_*` and `mz_zip_reader_save_all` functions are used in flow source .
20+ * The `mz_zip_reader_entry_*` and `mz_zip_reader_save_all` functions are used in flow sink .
2221 * [docuemnt](https://github.com/zlib-ng/minizip-ng/blob/master/doc/mz_zip_rw.md)
2322 */
2423class Mz_zip_reader_entry extends DecompressionFunction {
@@ -42,7 +41,7 @@ class UnzOpenFunction extends DecompressionFunction {
4241}
4342
4443/**
45- * The `mz_zip_reader_open_file` and `mz_zip_reader_open_file_in_memory` functions as a flow source .
44+ * The `mz_zip_reader_open_file` and `mz_zip_reader_open_file_in_memory` functions as a flow step .
4645 */
4746class ReaderOpenFunction extends DecompressionFlowStep {
4847 ReaderOpenFunction() {
Original file line number Diff line number Diff line change 44
55import cpp
66import semmle.code.cpp.ir.dataflow.TaintTracking
7- import semmle.code.cpp.security.FlowSources
87import DecompressionBomb
98
109/**
Original file line number Diff line number Diff line change 44
55import cpp
66import semmle.code.cpp.ir.dataflow.TaintTracking
7- import semmle.code.cpp.security.FlowSources
8- import semmle.code.cpp.commons.File
97import DecompressionBomb
108
119/**
Original file line number Diff line number Diff line change 44
55import cpp
66import semmle.code.cpp.ir.dataflow.TaintTracking
7- import semmle.code.cpp.security.FlowSources
87import DecompressionBomb
98
109/**
Original file line number Diff line number Diff line change 44
55import cpp
66import semmle.code.cpp.ir.dataflow.TaintTracking
7- import semmle.code.cpp.security.FlowSources
87import DecompressionBomb
98
109/**
Original file line number Diff line number Diff line change 44
55import cpp
66import semmle.code.cpp.ir.dataflow.TaintTracking
7- import semmle.code.cpp.security.FlowSources
87import DecompressionBomb
98
109/**
Load Diff Large diffs are not rendered by default.
You can’t perform that action at this time.
0 commit comments