Skip to content

Commit f5ccd4d

Browse files
JLLeitschuhTeamModerne
authored andcommitted
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 <[email protected]> Signed-off-by: Jonathan Leitschuh <[email protected]> Bug-tracker: JLLeitschuh/security-research#18 Co-authored-by: Moderne <[email protected]>
1 parent 6b62453 commit f5ccd4d

File tree

6 files changed

+11
-7
lines changed

6 files changed

+11
-7
lines changed

src/main/java/org/apache/maven/plugins/assembly/filter/AbstractLineAggregatingHandler.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import java.io.InputStreamReader;
3434
import java.io.OutputStreamWriter;
3535
import java.io.PrintWriter;
36+
import java.nio.file.Files;
3637
import java.util.ArrayList;
3738
import java.util.HashMap;
3839
import java.util.List;
@@ -81,7 +82,7 @@ void addToArchive( final Archiver archiver )
8182
File f;
8283
try
8384
{
84-
f = File.createTempFile( "assembly-" + fname, ".tmp" );
85+
f = Files.createTempFile( "assembly-" + fname, ".tmp" ).toFile();
8586
f.deleteOnExit();
8687

8788
try ( PrintWriter writer =

src/main/java/org/apache/maven/plugins/assembly/filter/ComponentsXmlArchiverFileFilter.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ private void addToArchive( final Archiver archiver )
102102
{
103103
if ( components != null )
104104
{
105-
final File f = File.createTempFile( "maven-assembly-plugin", "tmp" );
105+
final File f = Files.createTempFile( "maven-assembly-plugin", "tmp" ).toFile();
106106
f.deleteOnExit();
107107

108108

src/main/java/org/apache/maven/plugins/assembly/filter/SimpleAggregatingDescriptorHandler.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import java.io.StringWriter;
3939
import java.io.Writer;
4040
import java.nio.charset.StandardCharsets;
41+
import java.nio.file.Files;
4142
import java.util.ArrayList;
4243
import java.util.Collections;
4344
import java.util.Date;
@@ -97,7 +98,7 @@ private File writePropertiesFile()
9798
File f;
9899
try
99100
{
100-
f = File.createTempFile( "maven-assembly-plugin", "tmp" );
101+
f = Files.createTempFile( "maven-assembly-plugin", "tmp" ).toFile();
101102
f.deleteOnExit();
102103

103104
try ( Writer writer = getWriter( f ) )

src/main/java/org/apache/maven/plugins/assembly/io/URLLocation.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import java.io.File;
2323
import java.io.IOException;
2424
import java.net.URL;
25+
import java.nio.file.Files;
2526

2627
import org.apache.commons.io.IOUtils;
2728

@@ -65,7 +66,7 @@ protected void initFile()
6566
{
6667
if ( unsafeGetFile() == null )
6768
{
68-
File tempFile = File.createTempFile( tempFilePrefix, tempFileSuffix );
69+
File tempFile = Files.createTempFile( tempFilePrefix, tempFileSuffix ).toFile();
6970

7071
if ( tempFileDeleteOnExit )
7172
{

src/test/java/org/apache/maven/plugins/assembly/io/DefaultAssemblyReaderTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ public void setUp()
9696
public void testIncludeSiteInAssembly_ShouldFailIfSiteDirectoryNonExistent()
9797
throws Exception
9898
{
99-
final File siteDir = File.createTempFile( "assembly-reader.", ".test" );
99+
final File siteDir = Files.createTempFile( "assembly-reader.", ".test" ).toFile();
100100
siteDir.delete();
101101

102102
when( configSource.getSiteDirectory() ).thenReturn( siteDir );

src/test/java/org/apache/maven/plugins/assembly/utils/LineEndingsUtilsTest.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import java.io.IOException;
3030
import java.io.StringReader;
3131
import java.io.StringWriter;
32+
import java.nio.file.Files;
3233

3334
import static org.junit.Assert.assertEquals;
3435
import static org.junit.Assert.assertNull;
@@ -262,9 +263,9 @@ public void testConvertLineEndings_CRLFToLFWithEOFStripEOF()
262263
private void testConversion( String test, String check, LineEndings lineEndingChars, Boolean eof )
263264
throws IOException
264265
{
265-
File source = File.createTempFile( "line-conversion-test-in.", "" );
266+
File source = Files.createTempFile( "line-conversion-test-in.", "" ).toFile();
266267
source.deleteOnExit();
267-
File dest = File.createTempFile( "line-conversion-test-out.", "" );
268+
File dest = Files.createTempFile( "line-conversion-test-out.", "" ).toFile();
268269
dest.deleteOnExit();
269270

270271
FileWriter sourceWriter = null;

0 commit comments

Comments
 (0)