All Downloads are FREE. Search and download functionalities are using the official Maven repository.

templates.htmlReport.vsl Maven / Gradle / Ivy

#**
This file is part of dependency-check-core.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Copyright (c) 2012 Jeremy Long. All Rights Reserved.

@author Jeremy Long 
@version 1.4
*#


#[[


    
        Dependency-Check Report
        
        
        
        
        
        
    
    
        
        
        

Dependency-Check is an open source tool performing a best effort analysis of 3rd party dependencies; false positives and false negatives may exist in the analysis performed by the tool. Use of the tool and the reporting provided constitutes acceptance for use in an AS IS condition, and there are NO warranties, implied or otherwise, with regard to the analysis or its use. Any use of the tool and the reporting provided is at the user’s risk. In no event shall the copyright holder or OWASP be held liable for any damages whatsoever arising out of or in connection with the use of this tool, the analysis performed, or the resulting report.

How to read the report | Suppressing false positives | Getting Help: github issues

 Sponsor

]]#

Project: $enc.html($applicationName)

#if ($groupID && $artifactID && $applicationVersion)

$enc.html($groupID):$enc.html($artifactID):$enc.html($applicationVersion)

#end
#set($depCount=$dependencies.size()) #set($vulnDepCount=0) #set($vulnCount=0) #set($vulnSuppressedCount=0) #set($cpeSuppressedCount=0) #foreach($dependency in $dependencies) #set($depCount=$depCount+$dependency.getRelatedDependencies().size()) #if($dependency.getVulnerabilities().size()>0) #set($vulnDepCount=$vulnDepCount+1) #set($vulnCount=$vulnCount+$dependency.getVulnerabilities().size()) #end #if($dependency.getSuppressedIdentifiers().size()>0) #set($cpeSuppressedCount=$cpeSuppressedCount+1) #end #if($dependency.getSuppressedVulnerabilities().size()>0) #set($vulnSuppressedCount=$vulnSuppressedCount+$dependency.getSuppressedVulnerabilities().size()) #end #end Scan Information (show all):
  • dependency-check version: $version
  • Report Generated On: $scanDate
  • Dependencies Scanned: $depCount ($dependencies.size() unique)
  • Vulnerable Dependencies$vulnDepCount
  • Vulnerabilities Found: $vulnCount
  • Vulnerabilities Suppressed: $vulnSuppressedCount #if($vulnSuppressedCount>0) (show) #end
  • ...
  • #foreach($prop in $properties.getMetaData().entrySet()) #end

#set($cnt=0) #if($exceptions) #macro( writeHtmlException $type $ex $depth) #set($cnt=$cnt+1) #end

Analysis Exceptions

#foreach($ex in $exceptions) #set($type="exception") #set($d=0) #writeHtmlException($type $ex $d) #end
#end

Summary

Display: Showing Vulnerable Dependencies (click to show all)

#set($lnkcnt=0) #set($hasknown=0) #foreach($dependency in $dependencies) #set($lnkcnt=$lnkcnt+1) #set($mavenlink="") #set($cpeIdCount=0) #set($cpeIdConf="") #set($sortValue="") #foreach($id in $dependency.getVulnerableSoftwareIdentifiers()) #set($sortValue=$sortValue+$id.value) #end #foreach($id in $dependency.getSoftwareIdentifiers()) #set($sortValue=$sortValue+$id.value) #end #set($cveImpact=-1) #set($cveSeverity=" ") #if($dependency.getVulnerabilities().size()>0) #set($severestVuln=$dependency.getVulnerabilities(true).iterator().next()) ## yes - we are mixing v2 and v3... no consistency in data so doing the best we can ## with a set sorted approximately on descending severity #if ($severestVuln.cvssV3) #set($cveImpact=$severestVuln.cvssV3.cvssData.baseScore) #elseif ($severestVuln.cvssV2) #set($cveImpact=$severestVuln.cvssV2.cvssData.baseScore) #end #set($cveSeverity=$enc.html($severestVuln.highestSeverityText)) #if($dependency.hasKnownExploitedVulnerability()) #set($cveSeverity=$cveSeverity+"*") #set($hasknown=1) #end #end #set($sortValue=$cveImpact*10) #end
Dependency Vulnerability IDs Package Highest Severity CVE Count Confidence Evidence Count
$enc.html($dependency.DisplayFileName) #set($sortValue="") #set($cpeSort=0) #foreach($id in $dependency.getVulnerableSoftwareIdentifiers()) #if ($cpeIdCount>=1)
#end #if( $id.url ) $enc.html($id.value) #else $enc.html($id.value) #end #if ($cpeIdConf == "") #set($cpeIdConf=$id.confidence) #set($cpeSort=$id.confidence.ordinal()) #elseif ($cpeIdConf.compareTo($id.confidence)>0) #set($cpeIdConf=$id.confidence) #set($cpeSort=$id.confidence.ordinal()) #end #set($cpeIdCount=$cpeIdCount+1) #end
#set($sortValue="") #set($idCount=0) #foreach($id in $dependency.getSoftwareIdentifiers()) #if ($idCount>=1)
#end #if( $id.url ) $enc.html($id.value) #else $enc.html($id.value) #end #set($idCount=$idCount+1) #end
$cveSeverity $dependency.getVulnerabilities().size() $WordUtils.capitalizeFully($cpeIdConf.toString()) $dependency.size()
#if($hasknown==1)

* indicates the dependency has a known exploited vulnerability

#end

Dependencies (vulnerable)

#set($lnkcnt=0) #set($vsctr=0) ##counter to create unique groups for vulnerable software #foreach($dependency in $dependencies) #set($lnkcnt=$lnkcnt+1)

$enc.html($dependency.DisplayFileName)

#if ($dependency.description)

Description:

$enc.html($dependency.description)

#end

#if ($dependency.license) #if ($dependency.license.matches("https?://.+")) License:

$enc.html($dependency.license)
#else License:
$enc.html($dependency.license)
#end #end File Path: $enc.html($dependency.FilePath)
#if(!$dependency.isVirtual()) MD5: $enc.html($dependency.Md5sum)
SHA1: $enc.html($dependency.Sha1sum)
SHA256:$enc.html($dependency.Sha256sum) #end #if ($dependency.projectReferences.size()==1)
Referenced In Project/Scope: $enc.html($dependency.projectReferences.iterator().next()) #end #if ($dependency.projectReferences.size()>1)
Referenced In Projects/Scopes:
    #foreach($ref in $dependency.projectReferences)
  • $enc.html($ref)
  • #end
#end #if ($dependency.includedBy.size()==1) #set($incBy=$dependency.includedBy.iterator().next())
$enc.html($dependency.DisplayFileName) is in the transitive dependency tree of the listed items.Included by: $enc.html($incBy.getReference())#if($incBy.getType()) ($enc.html($incBy.getType()))#end #end #if ($dependency.includedBy.size()>1)
$enc.html($dependency.DisplayFileName) is in the transitive dependency tree of the listed items.Included by:
    #foreach($parent in $dependency.includedBy)
  • $enc.html($parent.getReference())#if($parent.getType()) ($enc.html($parent.getType()))#end
  • #end
#end

#set($cnt=$cnt+1) #if($dependency.getRelatedDependencies().size()>0) #set($cnt=$cnt+1) #end #set($cnt=$cnt+1)

Identifiers

##: $enc.html($cpevalue)
#set($supressPkgUrl='') #if ($dependency.getSoftwareIdentifiers().size()==0 && $dependency.getVulnerableSoftwareIdentifiers().size()==0)
  • None
#else
    #foreach($id in $dependency.getSoftwareIdentifiers()) #set($supressPkgUrl=$rpt.identifierToSuppressionId($id)) #if ($supressPkgUrl) #break #end #end #foreach($id in $dependency.getSoftwareIdentifiers()) #if( $id.url )
  • $enc.html($id.value) #else
  • $enc.html($id.value) #end #if ($id.confidence)   (Confidence:$WordUtils.capitalizeFully($id.confidence.toString())) #end #if ($id.notes)
    • Notes: $enc.html($id.notes)
    #end
  • #end #foreach($id in $dependency.getVulnerableSoftwareIdentifiers()) #if( $id.url )
  • $enc.html($id.value) #else
  • $enc.html($id.value) #end #if ($id.confidence)   (Confidence:$WordUtils.capitalizeFully($id.confidence.toString())) #end    #if ($id.notes)
    • Notes: $enc.html($id.notes)
    #end
  • #end
#end
#if($dependency.getVulnerabilities().size()>0) #set($cnt=$cnt+1)
#foreach($vuln in $dependency.getVulnerabilities(true)) #set($vsctr=$vsctr+1) #if($vuln.getSource().name().equals("NVD"))

$enc.html($vuln.name)  

#elseif($vuln.getSource().name().equals("NPM"))

$enc.html($vuln.name) (NPM)  

#else

$enc.html($vuln.name) ($vuln.getSource().name())  

#end #if($vuln.getKnownExploitedVulnerability()) CISA Known Exploited Vulnerability:
  • Product: $enc.html($vuln.getKnownExploitedVulnerability().getVendorProject()) $enc.html($vuln.getKnownExploitedVulnerability().getProduct())
  • Name: $enc.html($vuln.getKnownExploitedVulnerability().getVulnerabilityName())
  • Date Added: $enc.html($vuln.getKnownExploitedVulnerability().getDateAdded())
  • Description: $enc.html($vuln.getKnownExploitedVulnerability().getShortDescription())
  • Required Action: $enc.html($vuln.getKnownExploitedVulnerability().getRequiredAction())
  • Due Date: $enc.html($vuln.getKnownExploitedVulnerability().getDueDate())
  • #if($vuln.getKnownExploitedVulnerability().getNotes())
  • Notes: $enc.html($vuln.getKnownExploitedVulnerability().getNotes())
  • #end
#end

#if($vuln.description)

$enc.html($vuln.description)
#end #if ($vuln.cwes.toString()) $vuln.cwes.toString()

#end #if ($vuln.notes) Notes: $enc.html($vuln.notes)

#end #if($vuln.getCvssV2()) CVSSv2:
  • Base Score: $enc.html($vuln.getCvssV2().getCvssData().getBaseSeverity()) ($vuln.getCvssV2().getCvssData().getBaseScore())
  • Vector: $enc.html($vuln.getCvssV2().toString())
#end #if($vuln.getCvssV3()) CVSSv3:
  • Base Score: $enc.html($vuln.getCvssV3().getCvssData().getBaseSeverity()) ($vuln.getCvssV3().getCvssData().getBaseScore())
  • Vector: $enc.html($vuln.getCvssV3().toString())
#end #if ($vuln.unscoredSeverity) Unscored:
  • Severity: #if($vuln.unscoredSeverity.equals("0.0"))Unknown#else$enc.html($vuln.unscoredSeverity)#end
#end #if ($vuln.getReferences().size()>0)
References:
    #foreach($ref in $vuln.getReferences(true)) #if ($ref.url && $ref.name)
  • $enc.html($ref.source) - $enc.html($ref.name)
  • #elseif ($ref.uri)
  • $enc.html($ref.source) - $enc.html($ref.url)
  • #elseif ($ref.name)
  • $enc.html($ref.source) - $enc.html($ref.name)
  • #end #end
#end

#if ($vuln.getSource().name().equals("NVD") && $vuln.matchedVulnerableSoftware) #if ($vuln.getVulnerableSoftware().size()<2)

Vulnerable Software & Versions:

#else

Vulnerable Software & Versions: (show all)

#end #elseif ($vuln.getVulnerableSoftware().size()!=0)

Vulnerable Software & Versions ($vuln.getSource().name()):

    #foreach($vs in $vuln.getVulnerableSoftware(true))
  • $enc.html($vs.toString())
  • #end

#end #end
#end
#end ## BEGIN SUPPRESSED VULNERABILITIES #if ($vulnSuppressedCount>0 || $cpeSuppressedCount>0) #end ## END SUPPRESSED VULNERABILITIES


This report contains data retrieved from the National Vulnerability Database.
This report may contain data retrieved from the CISA Known Exploited Vulnerability Catalog.
This report may contain data retrieved from the Github Advisory Database (via NPM Audit API).
This report may contain data retrieved from RetireJS.
This report may contain data retrieved from the Sonatype OSS Index.




© 2015 - 2024 Weber Informatics LLC | Privacy Policy