mirror of
https://github.com/github/codeql.git
synced 2026-05-02 12:15:17 +02:00
JS: Add sinks mentioned in doc
Note that 'sql-injection' was already added
This commit is contained in:
@@ -11,6 +11,10 @@ module NoSql {
|
||||
/** Gets an expression that is interpreted as a code operator in this query. */
|
||||
DataFlow::Node getACodeOperator() { none() }
|
||||
}
|
||||
|
||||
private class QueryFromModel extends Query {
|
||||
QueryFromModel() { this = ModelOutput::getASinkNode("nosql-injection").asSink() }
|
||||
}
|
||||
}
|
||||
|
||||
/** DEPRECATED: Alias for NoSql */
|
||||
|
||||
@@ -235,4 +235,8 @@ module ClientSideUrlRedirect {
|
||||
this = NextJS::nextRouter().getAMemberCall(["push", "replace"]).getArgument(0)
|
||||
}
|
||||
}
|
||||
|
||||
private class SinkFromModel extends Sink {
|
||||
SinkFromModel() { this = ModelOutput::getASinkNode("url-redirection").asSink() }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -410,4 +410,8 @@ module CodeInjection {
|
||||
|
||||
/** DEPRECATED: Alias for JsonStringifySanitizer */
|
||||
deprecated class JSONStringifySanitizer = JsonStringifySanitizer;
|
||||
|
||||
private class SinkFromModel extends Sink {
|
||||
SinkFromModel() { this = ModelOutput::getASinkNode("code-injection").asSink() }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,4 +50,8 @@ module CommandInjection {
|
||||
class SystemCommandExecutionSink extends Sink, DataFlow::ValueNode {
|
||||
SystemCommandExecutionSink() { this = any(SystemCommandExecution sys).getACommandArgument() }
|
||||
}
|
||||
|
||||
private class SinkFromModel extends Sink {
|
||||
SinkFromModel() { this = ModelOutput::getASinkNode("command-line-injection").asSink() }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -342,4 +342,8 @@ module DomBasedXss {
|
||||
outcome = super.getPolarity()
|
||||
}
|
||||
}
|
||||
|
||||
private class SinkFromModel extends Sink {
|
||||
SinkFromModel() { this = ModelOutput::getASinkNode("html-injection").asSink() }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -150,4 +150,8 @@ module ReflectedXss {
|
||||
this.(Http::RequestHeaderAccess).getAHeaderName() = "referer"
|
||||
}
|
||||
}
|
||||
|
||||
private class SinkFromModel extends Sink {
|
||||
SinkFromModel() { this = ModelOutput::getASinkNode("html-injection").asSink() }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -73,4 +73,12 @@ module RequestForgery {
|
||||
pred = url.getArgument(0)
|
||||
)
|
||||
}
|
||||
|
||||
private class SinkFromModel extends Sink {
|
||||
SinkFromModel() { this = ModelOutput::getASinkNode("request-forgery").asSink() }
|
||||
|
||||
override DataFlow::Node getARequest() { result = this }
|
||||
|
||||
override string getKind() { result = "endpoint" }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,4 +62,8 @@ module ServerSideUrlRedirect {
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
private class SinkFromModel extends Sink {
|
||||
SinkFromModel() { this = ModelOutput::getASinkNode("url-redirection").asSink() }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -946,4 +946,8 @@ module TaintedPath {
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
private class SinkFromModel extends Sink {
|
||||
SinkFromModel() { this = ModelOutput::getASinkNode("path-injection").asSink() }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,4 +49,8 @@ module UnsafeDeserialization {
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
private class SinkFromModel extends Sink {
|
||||
SinkFromModel() { this = ModelOutput::getASinkNode("unsafe-deserialization").asSink() }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user