@@ -76,8 +76,8 @@ module TemplateObjectInjection {
7676 predicate usesVulnerableTemplateEngine ( Express:: RouterDefinition router ) {
7777 // option 1: `app.set("view engine", "theEngine")`.
7878 // Express will load the engine automatically.
79- exists ( MethodCallExpr call |
80- router .flowsTo ( call . getReceiver ( ) ) and
79+ exists ( DataFlow :: MethodCallNode call |
80+ router .ref ( ) . getAMethodCall ( ) = call and
8181 call .getMethodName ( ) = "set" and
8282 call .getArgument ( 0 ) .getStringValue ( ) = "view engine" and
8383 call .getArgument ( 1 ) .getStringValue ( ) = getAVulnerableTemplateEngine ( )
@@ -91,11 +91,11 @@ module TemplateObjectInjection {
9191 DataFlow:: MethodCallNode viewEngineCall
9292 |
9393 // `app.engine("name", engine)
94- router .flowsTo ( registerCall . getReceiver ( ) . asExpr ( ) ) and
94+ router .ref ( ) . getAMethodCall ( ) = registerCall and
9595 registerCall .getMethodName ( ) = [ "engine" , "register" ] and
9696 engine = registerCall .getArgument ( 1 ) .getALocalSource ( ) and
9797 // app.set("view engine", "name")
98- router .flowsTo ( viewEngineCall . getReceiver ( ) . asExpr ( ) ) and
98+ router .ref ( ) . getAMethodCall ( ) = viewEngineCall and
9999 viewEngineCall .getMethodName ( ) = "set" and
100100 viewEngineCall .getArgument ( 0 ) .getStringValue ( ) = "view engine" and
101101 // The name set by the `app.engine("name")` call matches `app.set("view engine", "name")`.
0 commit comments