CodeQL Editor
A simple online editor for CodeQL files.
untitled.ql — CodeQL Editor
1
/**2
* @name Taint-tracking to 'eval' calls3
* @description Tracks user-controlled values into 'eval' calls (special case of js/code-injection).4
* @kind problem5
* @problem.severity error6
* @tags security7
* @id js/examples/eval-taint8
*/9
10
import javascript11
import DataFlow12
13
class EvalTaint extends TaintTracking::Configuration {14
EvalTaint() { this = "EvalTaint" }15
16
override predicate isSource(Node node) { node instanceof RemoteFlowSource }17
18
override predicate isSink(Node node) { node = globalVarRef("eval").getACall().getArgument(0) }19
}20
21
from EvalTaint cfg, Node source, Node sink22
where cfg.hasFlow(source, sink)23
select sink, "Eval with user-controlled input from $@.", source, "here"