Skip to content

Commit 79a32f1

Browse files
committed
Tainting the freemarker dataModel isn't exploitable
1 parent dd6257c commit 79a32f1

File tree

2 files changed

+3
-4
lines changed

2 files changed

+3
-4
lines changed

java/ql/lib/semmle/code/java/security/TemplateInjection.qll

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,6 @@ private class TemplateInjectionSinkModels extends SinkModelCsv {
7474
override predicate row(string row) {
7575
row =
7676
[
77-
"freemarker.template;Template;true;process;;;Argument[0];ssti;manual",
7877
"freemarker.template;Template;true;Template;(String,Reader);;Argument[1];ssti;manual",
7978
"freemarker.template;Template;true;Template;(String,Reader,Configuration);;Argument[1];ssti;manual",
8079
"freemarker.template;Template;true;Template;(String,Reader,Configuration,String);;Argument[1];ssti;manual",

java/ql/test/query-tests/security/CWE-094/FreemarkerSSTI.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,14 +104,14 @@ public void bad9(HttpServletRequest request) {
104104
stringLoader.putTemplate("myTemplate", code, 0); // $hasTemplateInjection
105105
}
106106

107-
@GetMapping(value = "bad10")
108-
public void bad10(HttpServletRequest request) {
107+
@GetMapping(value = "good1")
108+
public void good1(HttpServletRequest request) {
109109
HashMap<Object, Object> root = new HashMap();
110110
String code = request.getParameter("code");
111111
root.put("code", code);
112112
Configuration cfg = new Configuration();
113113
Template temp = cfg.getTemplate("test.ftlh");
114114
OutputStreamWriter out = new OutputStreamWriter(System.out);
115-
temp.process(root, out); // $hasTemplateInjection
115+
temp.process(root, out); // Safe
116116
}
117117
}

0 commit comments

Comments
 (0)