File tree Expand file tree Collapse file tree
javascript/ql/src/semmle/javascript/frameworks Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -7,17 +7,28 @@ import semmle.javascript.frameworks.HTTP
77import semmle.javascript.security.SensitiveActions
88
99module NodeJSLib {
10+ private GlobalVariable processVariable ( ) {
11+ variables ( result , "process" , any ( GlobalScope sc ) )
12+ }
13+
14+ pragma [ nomagic]
15+ private GlobalVarAccess processExprInTopLevel ( TopLevel tl ) {
16+ result = processVariable ( ) .getAnAccess ( ) and
17+ tl = result .getTopLevel ( )
18+ }
19+
20+ pragma [ nomagic]
21+ private GlobalVarAccess processExprInNodeModule ( ) {
22+ result = processExprInTopLevel ( any ( NodeModule m ) )
23+ }
24+
1025 /**
1126 * An access to the global `process` variable in a Node.js module, interpreted as
1227 * an import of the `process` module.
1328 */
1429 private class ImplicitProcessImport extends DataFlow:: ModuleImportNode:: Range {
1530 ImplicitProcessImport ( ) {
16- exists ( GlobalVariable process |
17- process .getName ( ) = "process" and
18- this = DataFlow:: exprNode ( process .getAnAccess ( ) )
19- ) and
20- getTopLevel ( ) instanceof NodeModule
31+ this = DataFlow:: exprNode ( processExprInNodeModule ( ) )
2132 }
2233
2334 override string getPath ( ) { result = "process" }
You can’t perform that action at this time.
0 commit comments