diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/ImportResolution.qll b/python/ql/lib/semmle/python/dataflow/new/internal/ImportResolution.qll index a123f05dbc4..76542363a0c 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/ImportResolution.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/ImportResolution.qll @@ -86,7 +86,7 @@ module ImportResolution { predicate module_export(Module m, string name, DataFlow::CfgNode defn) { exists(EssaVariable v, EssaDefinition essaDef | v.getName() = name and - v.getAUse() = ImportStar::getStarImported*(m).getANormalExit() and + v.getAUse() = m.getANormalExit() and allowedEssaImportStep*(essaDef, v.getDefinition()) | defn.getNode() = essaDef.(AssignmentDefinition).getValue() @@ -94,6 +94,10 @@ module ImportResolution { defn.getNode() = essaDef.(ArgumentRefinement).getArgument() ) or + // `from import *` + module_export(ImportStar::getStarImported+(m), name, defn) + or + // `import ` or `from import ` exists(Alias a | defn.asExpr() = a.getValue() and a.getAsname().(Name).getId() = name and