Skip to content

Commit 373e9d1

Browse files
committed
Do not call SecurityUtils.getValidFilePath when processing a Multipart form as it will reject almost anything a user might put there. Just use the base filename
1 parent 05aeb79 commit 373e9d1

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import org.apache.commons.fileupload.FileUploadException;
2626
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
2727
import org.apache.commons.fileupload.servlet.ServletFileUpload;
28+
import org.apache.commons.io.FilenameUtils;
2829
import org.apache.commons.io.IOUtils;
2930
import org.apache.commons.io.input.NullInputStream;
3031
import org.slf4j.Logger;
@@ -63,6 +64,7 @@
6364
import java.util.Collection;
6465
import java.util.Collections;
6566
import java.util.Enumeration;
67+
import java.io.File;
6668
import java.util.HashMap;
6769
import java.util.Iterator;
6870
import java.util.List;
@@ -685,7 +687,7 @@ private String[] getFormBodyParameterCaseInsensitive(String key) {
685687
}
686688

687689

688-
@SuppressFBWarnings("FILE_UPLOAD_FILENAME")
690+
@SuppressFBWarnings({"FILE_UPLOAD_FILENAME", "WEAK_FILENAMEUTILS"})
689691
private Map<String, Part> getMultipartFormParametersMap() {
690692
if (multipartFormParameters != null) {
691693
return multipartFormParameters;
@@ -701,7 +703,7 @@ private Map<String, Part> getMultipartFormParametersMap() {
701703
try {
702704
List<FileItem> items = upload.parseRequest(this);
703705
for (FileItem item : items) {
704-
String fileName = SecurityUtils.getValidFilePath(item.getName(), true);
706+
String fileName = FilenameUtils.getName(item.getName());
705707
AwsProxyRequestPart newPart = new AwsProxyRequestPart(item.get());
706708
newPart.setName(fileName);
707709
newPart.setSubmittedFileName(item.getFieldName());

0 commit comments

Comments
 (0)