Skip to content

Commit a9adb29

Browse files
committed
JS: Improve lodash model
1 parent 9fc5c0b commit a9adb29

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

javascript/ql/src/experimental/Security/CWE-94/ServerSideTemplateInjection.ql

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,12 @@ class SSTINunjucksSink extends ServerSideTemplateInjectionSink {
5757
}
5858
}
5959

60+
class LodashTemplateSink extends ServerSideTemplateInjectionSink {
61+
LodashTemplateSink() {
62+
this = LodashUnderscore::member("template").getACall().getArgument(0)
63+
}
64+
}
65+
6066
from DataFlow::PathNode source, DataFlow::PathNode sink, ServerSideTemplateInjectionConfiguration c
6167
where c.hasFlowPath(source, sink)
6268
select sink.getNode(), source, sink,

javascript/ql/src/semmle/javascript/frameworks/LodashUnderscore.qll

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -407,7 +407,12 @@ module LodashUnderscore {
407407
"shuffle", "sample", "toArray", "partition", "compact", "first", "initial", "last",
408408
"rest", "flatten", "without", "difference", "uniq", "unique", "unzip", "transpose",
409409
"object", "chunk", "values", "mapObject", "pick", "omit", "defaults", "clone", "tap",
410-
"identity"] and
410+
"identity",
411+
// String category
412+
"camelCase", "capitalize", "deburr", "kebabCase", "lowerCase", "lowerFirst", "pad",
413+
"padEnd", "padStart", "repeat", "replace", "snakeCase", "split", "startCase", "toLower",
414+
"toUpper", "trim", "trimEnd", "trimStart", "truncate", "unescape", "upperCase",
415+
"upperFirst", "words"] and
411416
pred = call.getArgument(0) and
412417
succ = call
413418
or

0 commit comments

Comments
 (0)