Skip to content

Commit 2e7529c

Browse files
committed
remove local sources
1 parent e1d5c9d commit 2e7529c

1 file changed

Lines changed: 1 addition & 43 deletions

File tree

go/ql/src/experimental/CWE-522-DecompressionBombs/DecompressionBombs.ql

Lines changed: 1 addition & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* @kind path-problem
55
* @problem.severity error
66
* @security-severity 7.8
7-
* @precision medium
7+
* @precision high
88
* @id go/uncontrolled-file-decompression
99
* @tags security
1010
* experimental
@@ -24,50 +24,8 @@ module DecompressionBombs implements DataFlow::StateConfigSig {
2424
source instanceof UntrustedFlowSource
2525
or
2626
source instanceof CmdLineFlowSource
27-
// or
28-
// exists(Parameter p | p.getARead() = source | p.hasQualifiedName("io", "Reader"))
2927
) and
3028
state = ""
31-
or
32-
exists(DataFlow::Function f |
33-
(
34-
f.hasQualifiedName("archive/zip", ["OpenReader", "NewReader"])
35-
or
36-
f.hasQualifiedName("github.com/klauspost/compress/zip", ["NewReader", "OpenReader"])
37-
or
38-
f.hasQualifiedName("github.com/ulikunitz/xz", "NewReader")
39-
or
40-
f.hasQualifiedName([
41-
"compress/gzip", "github.com/klauspost/compress/gzip", "github.com/klauspost/pgzip"
42-
], "NewReader")
43-
or
44-
f.hasQualifiedName([
45-
"compress/bzip2", "github.com/dsnet/compress/bzip2", "github.com/cosnicolaou/pbzip2"
46-
], "NewReader")
47-
or
48-
f.hasQualifiedName(["github.com/dsnet/compress/flate"], "NewReader")
49-
or
50-
f.hasQualifiedName(["compress/flate", "github.com/klauspost/compress/flate"],
51-
["NewReaderDict", "NewReader"])
52-
or
53-
f.hasQualifiedName(["compress/zlib", "github.com/klauspost/compress/zlib"], "NewReader")
54-
or
55-
f.hasQualifiedName(["github.com/klauspost/compress/zstd", "github.com/DataDog/zstd"],
56-
"NewReader")
57-
or
58-
f.hasQualifiedName(["github.com/golang/snappy", "github.com/klauspost/compress/snappy"],
59-
"NewReader")
60-
or
61-
f.hasQualifiedName("github.com/klauspost/compress/s2", "NewReader")
62-
) and
63-
source = f.getACall().getResult(0) and
64-
not TaintTracking::localExprTaint(any(StringLit c), source.asExpr()) and
65-
state =
66-
[
67-
"ZstdNewReader", "XzNewReader", "GzipNewReader", "S2NewReader", "SnapyNewReader",
68-
"ZlibNewReader", "FlateNewReader", "Bzip2NewReader", "ZipOpenReader", "ZipKlauspost"
69-
]
70-
)
7129
}
7230

7331
predicate isSink(DataFlow::Node sink, FlowState state) {

0 commit comments

Comments
 (0)