@@ -2,7 +2,7 @@ private import python
22private import semmle.python.dataflow.new.DataFlow
33private import experimental.semmle.python.Concepts
44private import semmle.python.ApiGraphs
5- private import semmle.python.dataflow.new.TaintTracking
5+ private import semmle.python.dataflow.new.TaintTracking2
66
77module SmtpLib {
88 /** Gets a reference to `smtplib.SMTP_SSL` */
@@ -31,7 +31,7 @@ module SmtpLib {
3131 * argument. Used because of the impossibility to get local source nodes from `_subparts`'
3232 * `(List|Tuple)` elements.
3333 */
34- private class SMTPMessageConfig extends TaintTracking :: Configuration {
34+ private class SMTPMessageConfig extends TaintTracking2 :: Configuration {
3535 SMTPMessageConfig ( ) { this = "SMTPMessageConfig" }
3636
3737 override predicate isSource ( DataFlow:: Node source ) { source = mimeText ( _) }
@@ -87,8 +87,8 @@ module SmtpLib {
8787 sink =
8888 [ sendCall .getArg ( 2 ) , sendCall .getArg ( 2 ) .( DataFlow:: MethodCallNode ) .getObject ( ) ]
8989 .getALocalSource ( ) and
90- DataFlow :: flowsTo ( source , sink . ( DataFlow :: CallCfgNode ) . getArgByName ( "_subparts" ) ,
91- any ( SMTPMessageConfig a ) )
90+ any ( SMTPMessageConfig a )
91+ . hasFlow ( source , sink . ( DataFlow :: CallCfgNode ) . getArgByName ( "_subparts" ) )
9292 or
9393 // via .attach()
9494 sink = smtpMimeMultipartInstance ( ) .getReturn ( ) .getMember ( "attach" ) .getACall ( ) and
0 commit comments