@@ -31,48 +31,42 @@ module DecompressionBombs implements DataFlow::StateConfigSig {
3131 or
3232 exists ( DataFlow:: Function f |
3333 (
34- f .hasQualifiedName ( "archive/zip" , [ "OpenReader" , "NewReader" ] ) and
35- state = "ZipOpenReader"
34+ f .hasQualifiedName ( "archive/zip" , [ "OpenReader" , "NewReader" ] )
3635 or
37- f .hasQualifiedName ( "github.com/klauspost/compress/zip" , [ "NewReader" , "OpenReader" ] ) and
38- state = "ZipKlauspost"
36+ f .hasQualifiedName ( "github.com/klauspost/compress/zip" , [ "NewReader" , "OpenReader" ] )
3937 or
40- f .hasQualifiedName ( "github.com/ulikunitz/xz" , "NewReader" ) and
41- state = "XzNewReader"
38+ f .hasQualifiedName ( "github.com/ulikunitz/xz" , "NewReader" )
4239 or
4340 f .hasQualifiedName ( [
4441 "compress/gzip" , "github.com/klauspost/compress/gzip" , "github.com/klauspost/pgzip"
45- ] , "NewReader" ) and
46- state = "GzipNewReader"
42+ ] , "NewReader" )
4743 or
4844 f .hasQualifiedName ( [
4945 "compress/bzip2" , "github.com/dsnet/compress/bzip2" , "github.com/cosnicolaou/pbzip2"
50- ] , "NewReader" ) and
51- state = "Bzip2NewReader"
46+ ] , "NewReader" )
5247 or
53- f .hasQualifiedName ( [ "github.com/dsnet/compress/flate" ] , "NewReader" ) and
54- state = "FlateNewReader"
48+ f .hasQualifiedName ( [ "github.com/dsnet/compress/flate" ] , "NewReader" )
5549 or
5650 f .hasQualifiedName ( [ "compress/flate" , "github.com/klauspost/compress/flate" ] ,
57- [ "NewReaderDict" , "NewReader" ] ) and
58- state = "FlateNewReader"
51+ [ "NewReaderDict" , "NewReader" ] )
5952 or
60- f .hasQualifiedName ( [ "compress/zlib" , "github.com/klauspost/compress/zlib" ] , "NewReader" ) and
61- state = "ZlibNewReader"
53+ f .hasQualifiedName ( [ "compress/zlib" , "github.com/klauspost/compress/zlib" ] , "NewReader" )
6254 or
6355 f .hasQualifiedName ( [ "github.com/klauspost/compress/zstd" , "github.com/DataDog/zstd" ] ,
64- "NewReader" ) and
65- state = "ZstdNewReader"
56+ "NewReader" )
6657 or
6758 f .hasQualifiedName ( [ "github.com/golang/snappy" , "github.com/klauspost/compress/snappy" ] ,
68- "NewReader" ) and
69- state = "SnapyNewReader"
59+ "NewReader" )
7060 or
71- f .hasQualifiedName ( "github.com/klauspost/compress/s2" , "NewReader" ) and
72- state = "S2NewReader"
61+ f .hasQualifiedName ( "github.com/klauspost/compress/s2" , "NewReader" )
7362 ) and
7463 source = f .getACall ( ) .getResult ( 0 ) and
75- not TaintTracking:: localExprTaint ( any ( StringLit c ) , source .asExpr ( ) )
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+ ]
7670 )
7771 }
7872
0 commit comments