From 5342935539a9e57b92e8f135cf25af33584df7e0 Mon Sep 17 00:00:00 2001 From: Jonathan Leitschuh Date: Sat, 19 Nov 2022 02:09:01 +0000 Subject: [PATCH] vuln-fix: Temporary File Information Disclosure This fixes temporary file information disclosure vulnerability due to the use of the vulnerable `File.createTempFile()` method. The vulnerability is fixed by using the `Files.createTempFile()` method which sets the correct posix permissions. Weakness: CWE-377: Insecure Temporary File Severity: Medium CVSSS: 5.5 Detection: CodeQL & OpenRewrite (https://public.moderne.io/recipes/org.openrewrite.java.security.SecureTempFileCreation) Reported-by: Jonathan Leitschuh Signed-off-by: Jonathan Leitschuh Bug-tracker: https://github.com/JLLeitschuh/security-research/issues/18 Co-authored-by: Moderne --- src/main/java/it/attocchi/mail/utils/MailUtils.java | 3 ++- src/main/java/it/attocchi/utils/HttpClientUtils.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/it/attocchi/mail/utils/MailUtils.java b/src/main/java/it/attocchi/mail/utils/MailUtils.java index f36a049..63b62e4 100644 --- a/src/main/java/it/attocchi/mail/utils/MailUtils.java +++ b/src/main/java/it/attocchi/mail/utils/MailUtils.java @@ -14,6 +14,7 @@ import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import java.io.*; +import java.nio.file.Files; import java.util.*; @@ -485,7 +486,7 @@ public static void saveToEml(Message mail, File emlFile, boolean tmpEnabled) thr OutputStream os = null; try { if (tmpEnabled) { - File tmp = File.createTempFile("tmpEml", ".eml"); + File tmp = Files.createTempFile("tmpEml", ".eml").toFile(); logger.debug("inizio scrittura mail su file temporaneo {}...", tmp); os = new FileOutputStream(tmp); mail.writeTo(os); diff --git a/src/main/java/it/attocchi/utils/HttpClientUtils.java b/src/main/java/it/attocchi/utils/HttpClientUtils.java index 8e63874..0a6ea0e 100644 --- a/src/main/java/it/attocchi/utils/HttpClientUtils.java +++ b/src/main/java/it/attocchi/utils/HttpClientUtils.java @@ -23,6 +23,7 @@ import java.io.IOException; import java.io.OutputStream; import java.nio.charset.Charset; +import java.nio.file.Files; import java.util.List; import org.apache.commons.io.FilenameUtils; @@ -79,7 +80,7 @@ public static File getFile(String url, String urlFileNameParam, File dest) throw String extension = FilenameUtils.getExtension(name); if (dest == null) - dest = File.createTempFile(baseName + "_", "." + extension); + dest = Files.createTempFile(baseName + "_", "." + extension).toFile(); /* Procediamo con il Download */ httpget = new HttpGet(url);