File tree Expand file tree Collapse file tree
python/ql/src/experimental/semmle/python/security Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -8,7 +8,8 @@ class ZipSlipConfig extends TaintTracking::Configuration {
88 ZipSlipConfig ( ) { this = "ZipSlipConfig" }
99
1010 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
1213 source = API:: moduleImport ( "tarfile" ) .getMember ( "open" ) .getACall ( ) or
1314 source = API:: moduleImport ( "tarfile" ) .getMember ( "TarFile" ) .getACall ( ) or
1415 source = API:: moduleImport ( "bz2" ) .getMember ( "open" ) .getACall ( ) or
@@ -20,6 +21,7 @@ class ZipSlipConfig extends TaintTracking::Configuration {
2021 }
2122
2223 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 ( )
2426 }
2527}
You can’t perform that action at this time.
0 commit comments