File tree Expand file tree Collapse file tree 1 file changed +4
-2
lines changed
python/ql/src/experimental/semmle/python/security Expand file tree Collapse file tree 1 file changed +4
-2
lines changed Original file line number Diff line number Diff line change @@ -8,7 +8,8 @@ class ZipSlipConfig extends TaintTracking::Configuration {
8
8
ZipSlipConfig ( ) { this = "ZipSlipConfig" }
9
9
10
10
override predicate isSource ( DataFlow:: Node source ) {
11
- source = API:: moduleImport ( "zipfile" ) .getMember ( "ZipFile" ) .getACall ( ) or
11
+ source .asCfgNode ( ) .( CallNode ) .getFunction ( ) .( AttrNode ) .getObject ( "open" ) .pointsTo ( ) .getClass ( ) = Module:: named ( "zipfile" ) .attr ( "ZipFile" ) or
12
+ source .asCfgNode ( ) .( CallNode ) .getFunction ( ) .( AttrNode ) .getObject ( "namelist" ) .pointsTo ( ) .getClass ( ) = Module:: named ( "zipfile" ) .attr ( "ZipFile" ) or
12
13
source = API:: moduleImport ( "tarfile" ) .getMember ( "open" ) .getACall ( ) or
13
14
source = API:: moduleImport ( "tarfile" ) .getMember ( "TarFile" ) .getACall ( ) or
14
15
source = API:: moduleImport ( "bz2" ) .getMember ( "open" ) .getACall ( ) or
@@ -20,6 +21,7 @@ class ZipSlipConfig extends TaintTracking::Configuration {
20
21
}
21
22
22
23
override predicate isSink ( DataFlow:: Node sink ) {
23
- sink = any ( CopyFile copyfile ) .getAPathArgument ( )
24
+ sink = any ( CopyFile copyfile ) .getAPathArgument ( ) or
25
+ sink = any ( CopyFile copyfile ) .getfsrcArgument ( )
24
26
}
25
27
}
You can’t perform that action at this time.
0 commit comments