Skip to content

Commit 5245930

Browse files
authored
feat: show from which dependency the CVE comes in failure report (#7224)
1 parent 97c3cee commit 5245930

4 files changed

Lines changed: 31 additions & 7 deletions

File tree

ant/src/main/java/org/owasp/dependencycheck/taskdefs/Check.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
import java.io.File;
2121
import java.util.ArrayList;
2222
import java.util.List;
23+
import java.util.stream.Collectors;
24+
import java.util.stream.Stream;
2325
import javax.annotation.concurrent.NotThreadSafe;
2426

2527
import org.apache.tools.ant.BuildException;
@@ -35,6 +37,7 @@
3537
import org.owasp.dependencycheck.data.nvdcve.DatabaseException;
3638
import org.owasp.dependencycheck.dependency.Dependency;
3739
import org.owasp.dependencycheck.dependency.Vulnerability;
40+
import org.owasp.dependencycheck.dependency.naming.Identifier;
3841
import org.owasp.dependencycheck.exception.ExceptionCollection;
3942
import org.owasp.dependencycheck.exception.ReportException;
4043
import org.owasp.dependencycheck.reporting.ReportGenerator.Format;
@@ -2301,8 +2304,12 @@ private void checkForFailure(Dependency[] dependencies) throws BuildException {
23012304
|| (failBuildOnCVSS <= 0.0f)) {
23022305
if (addName) {
23032306
addName = false;
2304-
ids.append(NEW_LINE).append(d.getFileName()).append(": ");
2305-
ids.append(v.getName());
2307+
ids.append(NEW_LINE).append(d.getFileName()).append(" (")
2308+
.append(Stream.concat(d.getSoftwareIdentifiers().stream(), d.getVulnerableSoftwareIdentifiers().stream())
2309+
.map(Identifier::getValue)
2310+
.collect(Collectors.joining(", ")))
2311+
.append("): ")
2312+
.append(v.getName());
23062313
} else {
23072314
ids.append(", ").append(v.getName());
23082315
}

cli/src/main/java/org/owasp/dependencycheck/App.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,16 @@
2424
import java.util.List;
2525
import java.util.Set;
2626

27+
import java.util.stream.Collectors;
28+
import java.util.stream.Stream;
2729
import org.apache.commons.cli.ParseException;
2830
import org.apache.tools.ant.DirectoryScanner;
2931
import org.owasp.dependencycheck.data.nvdcve.DatabaseException;
3032
import org.owasp.dependencycheck.dependency.Dependency;
3133
import org.owasp.dependencycheck.dependency.Vulnerability;
3234
import org.apache.tools.ant.types.LogLevel;
3335
import org.owasp.dependencycheck.data.update.exception.UpdateException;
36+
import org.owasp.dependencycheck.dependency.naming.Identifier;
3437
import org.owasp.dependencycheck.exception.ExceptionCollection;
3538
import org.owasp.dependencycheck.exception.ReportException;
3639
import org.owasp.dependencycheck.utils.Downloader;
@@ -331,7 +334,11 @@ private int determineReturnCode(Engine engine, float cvssFailScore) {
331334
}
332335
if (addName) {
333336
addName = false;
334-
ids.append(NEW_LINE).append(d.getFileName()).append(": ");
337+
ids.append(NEW_LINE).append(d.getFileName()).append(" (")
338+
.append(Stream.concat(d.getSoftwareIdentifiers().stream(), d.getVulnerableSoftwareIdentifiers().stream())
339+
.map(Identifier::getValue)
340+
.collect(Collectors.joining(", ")))
341+
.append("): ");
335342
ids.append(v.getName()).append('(').append(score).append(')');
336343
} else {
337344
ids.append(", ").append(v.getName()).append('(').append(score).append(')');

core/src/main/java/org/owasp/dependencycheck/agent/DependencyCheckScanAgent.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1011,8 +1011,12 @@ private void checkForFailure(Dependency[] dependencies) throws ScanAgentExceptio
10111011
|| (failBuildOnCVSS <= 0.0f)) {
10121012
if (addName) {
10131013
addName = false;
1014-
ids.append(NEW_LINE).append(d.getFileName()).append(": ");
1015-
ids.append(v.getName());
1014+
ids.append(NEW_LINE).append(d.getFileName()).append(" (")
1015+
.append(Stream.concat(d.getSoftwareIdentifiers().stream(), d.getVulnerableSoftwareIdentifiers().stream())
1016+
.map(Identifier::getValue)
1017+
.collect(Collectors.joining(", ")))
1018+
.append("): ")
1019+
.append(v.getName());
10161020
} else {
10171021
ids.append(", ").append(v.getName());
10181022
}

maven/src/main/java/org/owasp/dependencycheck/maven/BaseDependencyCheckMojo.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
import com.github.packageurl.PackageURL.StandardTypes;
2222
import com.github.packageurl.PackageURL;
2323
import io.github.jeremylong.jcs3.slf4j.Slf4jAdapter;
24+
import java.util.stream.Collectors;
25+
import java.util.stream.Stream;
2426
import org.apache.maven.artifact.Artifact;
2527
import org.apache.maven.artifact.DefaultArtifact;
2628
import org.apache.maven.artifact.handler.DefaultArtifactHandler;
@@ -2662,8 +2664,12 @@ protected void checkForFailure(Dependency[] dependencies) throws MojoFailureExce
26622664
}
26632665
if (addName) {
26642666
addName = false;
2665-
ids.append(NEW_LINE).append(d.getFileName()).append(": ");
2666-
ids.append(name);
2667+
ids.append(NEW_LINE).append(d.getFileName()).append(" (")
2668+
.append(Stream.concat(d.getSoftwareIdentifiers().stream(), d.getVulnerableSoftwareIdentifiers().stream())
2669+
.map(Identifier::getValue)
2670+
.collect(Collectors.joining(", ")))
2671+
.append("): ")
2672+
.append(name);
26672673
} else {
26682674
ids.append(", ").append(name);
26692675
}

0 commit comments

Comments
 (0)