diff --git a/python/ql/lib/semmle/python/Concepts.qll b/python/ql/lib/semmle/python/Concepts.qll index cf6f0214496..94d660d7510 100644 --- a/python/ql/lib/semmle/python/Concepts.qll +++ b/python/ql/lib/semmle/python/Concepts.qll @@ -872,7 +872,7 @@ class TemplateConstruction extends DataFlow::Node instanceof TemplateConstructio DataFlow::Node getSourceArg() { result = super.getSourceArg() } } -/** Provides classes for modelling template construction APIs. */ +/** Provides classes for modeling template construction APIs. */ module TemplateConstruction { /** * A data-flow node that constructs a template in a templating engine. @@ -886,7 +886,6 @@ module TemplateConstruction { } } - /** Provides classes for modeling HTTP-related APIs. */ module Http { /** Gets an HTTP verb, in upper case */ diff --git a/python/ql/lib/semmle/python/frameworks/Airspeed.qll b/python/ql/lib/semmle/python/frameworks/Airspeed.qll index bdfc2ae357d..a08a1b4a46b 100644 --- a/python/ql/lib/semmle/python/frameworks/Airspeed.qll +++ b/python/ql/lib/semmle/python/frameworks/Airspeed.qll @@ -4,7 +4,6 @@ */ private import python -private import semmle.python.dataflow.new.DataFlow private import semmle.python.ApiGraphs private import semmle.python.Concepts diff --git a/python/ql/lib/semmle/python/frameworks/Chameleon.qll b/python/ql/lib/semmle/python/frameworks/Chameleon.qll index 2f86d784b96..cf5444c40ce 100644 --- a/python/ql/lib/semmle/python/frameworks/Chameleon.qll +++ b/python/ql/lib/semmle/python/frameworks/Chameleon.qll @@ -4,7 +4,6 @@ */ private import python -private import semmle.python.dataflow.new.DataFlow private import semmle.python.ApiGraphs private import semmle.python.Concepts diff --git a/python/ql/lib/semmle/python/frameworks/Chevron.qll b/python/ql/lib/semmle/python/frameworks/Chevron.qll index 5d938fef208..ec5676a2f04 100644 --- a/python/ql/lib/semmle/python/frameworks/Chevron.qll +++ b/python/ql/lib/semmle/python/frameworks/Chevron.qll @@ -4,7 +4,6 @@ */ private import python -private import semmle.python.dataflow.new.DataFlow private import semmle.python.ApiGraphs private import semmle.python.Concepts diff --git a/python/ql/lib/semmle/python/frameworks/Django.qll b/python/ql/lib/semmle/python/frameworks/Django.qll index 80ef4aef435..4aa5776ad54 100644 --- a/python/ql/lib/semmle/python/frameworks/Django.qll +++ b/python/ql/lib/semmle/python/frameworks/Django.qll @@ -3000,7 +3000,6 @@ module PrivateDjango { // --------------------------------------------------------------------------- // Templates // --------------------------------------------------------------------------- - /** A call to `django.template.Template` */ private class DjangoTemplateConstruction extends TemplateConstruction::Range, API::CallNode { DjangoTemplateConstruction() { @@ -3009,6 +3008,5 @@ module PrivateDjango { override DataFlow::Node getSourceArg() { result = this.getArg(0) } } - // TODO: Support `from_string` on instances of `django.template.Engine`. } diff --git a/python/ql/lib/semmle/python/frameworks/Genshi.qll b/python/ql/lib/semmle/python/frameworks/Genshi.qll index f01b5137aac..1e29295b428 100644 --- a/python/ql/lib/semmle/python/frameworks/Genshi.qll +++ b/python/ql/lib/semmle/python/frameworks/Genshi.qll @@ -4,7 +4,6 @@ */ private import python -private import semmle.python.dataflow.new.DataFlow private import semmle.python.ApiGraphs private import semmle.python.Concepts diff --git a/python/ql/lib/semmle/python/frameworks/Jinja2.qll b/python/ql/lib/semmle/python/frameworks/Jinja2.qll index c89ffbe3cc9..9f267915e5c 100644 --- a/python/ql/lib/semmle/python/frameworks/Jinja2.qll +++ b/python/ql/lib/semmle/python/frameworks/Jinja2.qll @@ -4,7 +4,6 @@ */ private import python -private import semmle.python.dataflow.new.DataFlow private import semmle.python.ApiGraphs private import semmle.python.Concepts private import semmle.python.frameworks.data.ModelsAsData diff --git a/python/ql/lib/semmle/python/frameworks/Mako.qll b/python/ql/lib/semmle/python/frameworks/Mako.qll index 5dd518a8afe..2209c0f89d2 100644 --- a/python/ql/lib/semmle/python/frameworks/Mako.qll +++ b/python/ql/lib/semmle/python/frameworks/Mako.qll @@ -4,7 +4,6 @@ */ private import python -private import semmle.python.dataflow.new.DataFlow private import semmle.python.ApiGraphs private import semmle.python.Concepts diff --git a/python/ql/lib/semmle/python/frameworks/TRender.qll b/python/ql/lib/semmle/python/frameworks/TRender.qll index 08749676a06..fae27f418c3 100644 --- a/python/ql/lib/semmle/python/frameworks/TRender.qll +++ b/python/ql/lib/semmle/python/frameworks/TRender.qll @@ -4,7 +4,6 @@ */ private import python -private import semmle.python.dataflow.new.DataFlow private import semmle.python.ApiGraphs private import semmle.python.Concepts diff --git a/python/ql/lib/semmle/python/security/dataflow/TemplateInjectionQuery.qll b/python/ql/lib/semmle/python/security/dataflow/TemplateInjectionQuery.qll index e5ad529fb37..22c228f48d5 100644 --- a/python/ql/lib/semmle/python/security/dataflow/TemplateInjectionQuery.qll +++ b/python/ql/lib/semmle/python/security/dataflow/TemplateInjectionQuery.qll @@ -11,7 +11,7 @@ import semmle.python.dataflow.new.DataFlow import semmle.python.dataflow.new.TaintTracking import TemplateInjectionCustomizations::TemplateInjection -module TemplateInjectionConfig implements DataFlow::ConfigSig { +private module TemplateInjectionConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node node) { node instanceof Source } predicate isSink(DataFlow::Node node) { node instanceof Sink } @@ -19,4 +19,5 @@ module TemplateInjectionConfig implements DataFlow::ConfigSig { predicate isBarrierIn(DataFlow::Node node) { node instanceof Sanitizer } } +/** Global taint-tracking for detecting "template injection" vulnerabilities. */ module TemplateInjectionFlow = TaintTracking::Global;