Skip to content

Commit 64f72b2

Browse files
authored
Snyk reports on child CWEs for PathTraversal and password hashing (#90)
* Snyk reports on child CWEs for PathTraversal and password hashing * Move CWE mapping logic into SnykReader itself & add tests Looks good to me. Thanks for fixing.
1 parent 57fd952 commit 64f72b2

File tree

3 files changed

+30
-0
lines changed

3 files changed

+30
-0
lines changed

plugin/src/main/java/org/owasp/benchmarkutils/score/CweNumber.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ public class CweNumber {
2525
/** CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') */
2626
public static int PATH_TRAVERSAL = 22;
2727

28+
/** CWE-23: Relative Path Traversal */
29+
public static int RELATIVE_PATH_TRAVERSAL = 23;
30+
2831
/**
2932
* CWE-78: Improper Neutralization of Special Elements used in an OS Command ('OS Command
3033
* Injection')
@@ -166,6 +169,9 @@ public class CweNumber {
166169
/** CWE-835: Loop with Unreachable Exit Condition ('Infinite Loop') */
167170
public static int LOOP_WITH_UNREACHABLE_EXIT = 835;
168171

172+
/** CWE-916: Use of Password Hash With Insufficient Computational Effort */
173+
public static int PASSWORD_HASH_WITH_INSUFFICIENT_COMPUTATIONAL_EFFORT = 916;
174+
169175
/** CWE-918: Server-Side Request Forgery (SSRF) */
170176
public static int SSRF = 918;
171177

plugin/src/main/java/org/owasp/benchmarkutils/score/parsers/sarif/SnykReader.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,24 @@
1717
*/
1818
package org.owasp.benchmarkutils.score.parsers.sarif;
1919

20+
import org.owasp.benchmarkutils.score.CweNumber;
21+
2022
public class SnykReader extends SarifReader {
2123

2224
public SnykReader() {
2325
super("SnykCode", true, CweSourceType.FIELD);
2426
}
27+
28+
@Override
29+
public int mapCwe(int cwe) {
30+
if (cwe == CweNumber.PASSWORD_HASH_WITH_INSUFFICIENT_COMPUTATIONAL_EFFORT) {
31+
return CweNumber.WEAK_HASH_ALGO;
32+
}
33+
34+
if (cwe == CweNumber.RELATIVE_PATH_TRAVERSAL) {
35+
return CweNumber.PATH_TRAVERSAL;
36+
}
37+
38+
return super.mapCwe(cwe);
39+
}
2540
}

plugin/src/test/java/org/owasp/benchmarkutils/score/parsers/sarif/SnykReaderTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,4 +59,13 @@ void readerHandlesGivenResultFile() throws Exception {
5959
assertEquals(CweNumber.INSECURE_COOKIE, result.get(1).get(0).getCWE());
6060
assertEquals(CweNumber.XPATH_INJECTION, result.get(2).get(0).getCWE());
6161
}
62+
63+
@Test
64+
void readerMapsCwes() {
65+
SnykReader reader = new SnykReader();
66+
assertEquals(
67+
CweNumber.WEAK_HASH_ALGO,
68+
reader.mapCwe(CweNumber.PASSWORD_HASH_WITH_INSUFFICIENT_COMPUTATIONAL_EFFORT));
69+
assertEquals(CweNumber.PATH_TRAVERSAL, reader.mapCwe(CweNumber.RELATIVE_PATH_TRAVERSAL));
70+
}
6271
}

0 commit comments

Comments
 (0)