Skip to content

Commit 5bd8de1

Browse files
committed
Fix smtplib's _subparts taint config issue
1 parent 1be823d commit 5bd8de1

1 file changed

Lines changed: 4 additions & 4 deletions

File tree

  • python/ql/src/experimental/semmle/python/libraries

python/ql/src/experimental/semmle/python/libraries/SmtpLib.qll

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ private import python
22
private import semmle.python.dataflow.new.DataFlow
33
private import experimental.semmle.python.Concepts
44
private import semmle.python.ApiGraphs
5-
private import semmle.python.dataflow.new.TaintTracking
5+
private import semmle.python.dataflow.new.TaintTracking2
66

77
module 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

Comments
 (0)