Skip to content

Commit 29a3beb

Browse files
vuln-fix: Temporary Directory Hijacking or Information Disclosure
This fixes either Temporary Directory Hijacking, or Temporary Directory Local Information Disclosure. Weakness: CWE-379: Creation of Temporary File in Directory with Insecure Permissions Severity: High CVSSS: 7.3 Detection: CodeQL & OpenRewrite (https://public.moderne.io/recipes/org.openrewrite.java.security.UseFilesCreateTempDirectory) Reported-by: Jonathan Leitschuh <[email protected]> Signed-off-by: Jonathan Leitschuh <[email protected]> Bug-tracker: JLLeitschuh/security-research#10 Co-authored-by: Moderne <[email protected]>
1 parent 373c034 commit 29a3beb

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

src/main/java/org/bridj/Platform.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import java.net.MalformedURLException;
4141
import java.net.URL;
4242
import java.net.URLClassLoader;
43+
import java.nio.file.Files;
4344
import java.util.ArrayList;
4445
import java.util.Collections;
4546
import java.util.Iterator;
@@ -710,8 +711,8 @@ static File extractEmbeddedLibraryResource(String name) throws IOException {
710711
static File createTempDir(String prefix) throws IOException {
711712
File dir;
712713
for (int i = 0; i < maxTempFileAttempts; i++) {
713-
dir = File.createTempFile(prefix, "");
714-
if (dir.delete() && dir.mkdirs()) {
714+
dir = Files.createTempDirectory(prefix).toFile();
715+
if (true) {
715716
return dir;
716717
}
717718
}

src/test/java/org/bridj/NativeLibraryTest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import java.io.File;
3636
import java.io.FileOutputStream;
3737
import java.io.IOException;
38+
import java.nio.file.Files;
3839

3940
import org.bridj.ann.Library;
4041
import org.bridj.ann.Runtime;
@@ -46,9 +47,7 @@
4647
public class NativeLibraryTest {
4748

4849
static File tempDir() throws IOException {
49-
File f = File.createTempFile("bridj", "natlibtest");
50-
f.delete();
51-
f.mkdir();
50+
File f = Files.createTempDirectory("bridj" + "natlibtest").toFile();
5251
f.deleteOnExit();
5352
return f;
5453
}

0 commit comments

Comments
 (0)