Skip to content

Commit

Permalink
test: Temporary File Information Disclosure (#942)
Browse files Browse the repository at this point in the history
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 <Jonathan.Leitschuh@gmail.com>
Signed-off-by: Jonathan Leitschuh <Jonathan.Leitschuh@gmail.com>

Bug-tracker: JLLeitschuh/security-research#18


Co-authored-by: Moderne <team@moderne.io>

Co-authored-by: Moderne <team@moderne.io>
  • Loading branch information
JLLeitschuh and TeamModerne authored Nov 24, 2022
1 parent 5438850 commit dee1e09
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions sorald/src/test/java/sorald/miner/WarningMinerTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public class WarningMinerTest {

@Test
public void test_warningMiner() throws Exception {
File outputFile = File.createTempFile("warnings", null),
File outputFile = Files.createTempFile("warnings", null).toFile(),
temp = Files.createTempDirectory("tempDir").toFile();

runMiner(REPOS_TXT, outputFile.getPath(), temp.getPath());
Expand All @@ -59,7 +59,7 @@ public void test_warningMiner() throws Exception {

@Test
public void test_onlyMineRepairableViolations() throws Exception {
File outputFile = File.createTempFile("warnings", null),
File outputFile = Files.createTempFile("warnings", null).toFile(),
temp = Files.createTempDirectory("tempDir").toFile();

runMiner(REPOS_TXT, outputFile.getPath(), temp.getPath(), Constants.ARG_HANDLED_RULES);
Expand Down Expand Up @@ -87,7 +87,7 @@ public void test_onlyMineRepairableViolations() throws Exception {
public void warningsMiner_onlyScansForGivenTypes_whenRuleTypesGiven() throws Exception {
Set<IRuleType> ruleTypes = Set.of(SonarRuleType.VULNERABILITY, SonarRuleType.CODE_SMELL);

File outputFile = File.createTempFile("warnings", null);
File outputFile = Files.createTempFile("warnings", null).toFile();
File temp = Files.createTempDirectory("tempDir").toFile();

runMiner(
Expand Down Expand Up @@ -135,7 +135,7 @@ public void warningsMiner_canAnalyzeFile_inDirectoryWithJavaExtension(@TempDir F
/** Test that extracting warnings gives results even for rules that are not violated. */
@Test
public void extractWarnings_accountsForAllRules_whenManyAreNotViolated() throws Exception {
File outputFile = File.createTempFile("warnings", null),
File outputFile = Files.createTempFile("warnings", null).toFile(),
temp = Files.createTempDirectory("tempDir").toFile();

runMiner(REPOS_TXT, outputFile.getPath(), temp.getPath());
Expand All @@ -153,9 +153,9 @@ public void extractWarnings_accountsForAllRules_whenManyAreNotViolated() throws
/** Test that extracting warnings gives results even for rules that are not violated. */
@Test
public void extractWarnings_statsOutput_containsExpectedAttributes() throws Exception {
File outputFile = File.createTempFile("warnings", null),
File outputFile = Files.createTempFile("warnings", null).toFile(),
temp = Files.createTempDirectory("tempDir").toFile(),
statsFile = File.createTempFile("stats", null);
statsFile = Files.createTempFile("stats", null).toFile();

runMiner(
REPOS_TXT,
Expand Down

0 comments on commit dee1e09

Please sign in to comment.