Skip to content

Commit b807757

Browse files
author
Sauyon Lee
committed
Model Spring web.multipart
1 parent 25dd29b commit b807757

File tree

4 files changed

+31
-0
lines changed

4 files changed

+31
-0
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
lgtm,codescanning
2+
* Additional flow steps in the `org.springframework.web.multipart` package of the Spring framework
3+
have been modelled. This may result in additional results for security queries on projects using
4+
this framework.

java/ql/src/semmle/code/java/dataflow/ExternalFlow.qll

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ private module Frameworks {
9090
private import semmle.code.java.frameworks.spring.SpringValidation
9191
private import semmle.code.java.frameworks.spring.SpringWebClient
9292
private import semmle.code.java.frameworks.spring.SpringBeans
93+
private import semmle.code.java.frameworks.spring.SpringWebMultipart
9394
private import semmle.code.java.security.ResponseSplitting
9495
private import semmle.code.java.security.InformationLeak
9596
private import semmle.code.java.security.JexlInjectionSinkModels

java/ql/src/semmle/code/java/frameworks/spring/Spring.qll

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import semmle.code.java.frameworks.spring.SpringSet
3636
import semmle.code.java.frameworks.spring.SpringUtil
3737
import semmle.code.java.frameworks.spring.SpringValidation
3838
import semmle.code.java.frameworks.spring.SpringValue
39+
import semmle.code.java.frameworks.spring.SpringWebMultipart
3940
import semmle.code.java.frameworks.spring.SpringXMLElement
4041
import semmle.code.java.frameworks.spring.metrics.MetricSpringBean
4142
import semmle.code.java.frameworks.spring.metrics.MetricSpringBeanFile
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/** Provides models of taint flow in `org.springframework.web.multipart` */
2+
3+
import java
4+
private import semmle.code.java.dataflow.ExternalFlow
5+
6+
private class FlowSummaries extends SummaryModelCsv {
7+
override predicate row(string row) {
8+
row =
9+
[
10+
"org.springframework.web.multipart;MultipartFile;true;getBytes;;;Argument[-1];ReturnValue;taint",
11+
"org.springframework.web.multipart;MultipartFile;true;getInputStream;;;Argument[-1];ReturnValue;taint",
12+
"org.springframework.web.multipart;MultipartFile;true;getName;;;Argument[-1];ReturnValue;taint",
13+
"org.springframework.web.multipart;MultipartFile;true;getOriginalFilename;;;Argument[-1];ReturnValue;taint",
14+
"org.springframework.web.multipart;MultipartFile;true;getResource;;;Argument[-1];ReturnValue;taint",
15+
"org.springframework.web.multipart;MultipartHttpServletRequest;true;getMultipartHeaders;;;Argument[-1];ReturnValue;taint",
16+
"org.springframework.web.multipart;MultipartHttpServletRequest;true;getRequestHeaders;;;Argument[-1];ReturnValue;taint",
17+
"org.springframework.web.multipart;MultipartRequest;true;getFile;;;Argument[-1];ReturnValue;taint",
18+
"org.springframework.web.multipart;MultipartRequest;true;getFileMap;;;Argument[-1];MapValue of ReturnValue;taint",
19+
"org.springframework.web.multipart;MultipartRequest;true;getFileNames;;;Argument[-1];Element of ReturnValue;taint",
20+
"org.springframework.web.multipart;MultipartRequest;true;getFiles;;;Argument[-1];Element of ReturnValue;taint",
21+
"org.springframework.web.multipart;MultipartRequest;true;getMultiFileMap;;;Argument[-1];MapValue of ReturnValue;taint",
22+
"org.springframework.web.multipart;MultipartResolver;true;resolveMultipart;;;Argument[0];ReturnValue;taint"
23+
]
24+
}
25+
}

0 commit comments

Comments
 (0)