Skip to content

A security issue that codeql cannot detect #12473

@jiemodesehn

Description

@jiemodesehn

A security issue that codeql cannot detect

A file upload cannot be detected by codeql using the transferTo function

public static File uploadFile(MultipartFile fileUploader) {
        if (fileUploader != null && !fileUploader.isEmpty()) {
            String fileNameString = fileUploader.getOriginalFilename();
            if (!fileNameString.contains(".")) {
                throw new RuntimeException("文件后缀获取不到");
            } else if (10485760L < fileUploader.getSize()) {
                throw new RuntimeException("文件大小不支持大于10M");
            } else {
                String fileSuffix = fileNameString.substring(fileNameString.lastIndexOf(".") + 1);
                String uuid = UUIDUtils.getUuid();
                String newFileName = uuid + "." + fileSuffix;
                String tmpPath = uploadFilePath + File.separator + newFileName;
                File tmpFile = new File(tmpPath);

                try {
                    fileUploader.transferTo(tmpFile);
                    return tmpFile;
                } catch (Exception var8) {
                    throw new RuntimeException("系统异常:上传失败,请查看日志");
                }
            }
        } else {
            throw new RuntimeException("上传文件不能为空");
        }
}

can you tell me how to solve it

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions