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