Report templatesFunctions
countVulnerabilitiesByRisk
Count vulnerabilities by risk severity levels and CVSS scores
Usage
The countVulnerabilitiesByRisk function analyzes a collection of vulnerabilities and returns counts grouped by risk severity levels. It calculates risk both from probability/impact combinations and CVSS scores.
Syntax
{vulnerabilities | countVulnerabilitiesByRisk}Parameters
vulnerabilities(object): An object containing arowsarray of vulnerability objects. Each vulnerability should have:probability(string): Probability levelimpact(string): Impact levelcvss_score(number, optional): CVSS score (0-10)
Returns
An object containing:
critical: Count of Critical severity vulnerabilities (probability/impact based)high: Count of High severity vulnerabilities (probability/impact based)medium: Count of Medium severity vulnerabilities (probability/impact based)low: Count of Low severity vulnerabilities (probability/impact based)info: Count of Informational severity vulnerabilities (probability/impact based)criticalCvss: Count of Critical severity vulnerabilities (CVSS based, 9.0-10.0)highCvss: Count of High severity vulnerabilities (CVSS based, 7.0-8.9)mediumCvss: Count of Medium severity vulnerabilities (CVSS based, 4.0-6.9)lowCvss: Count of Low severity vulnerabilities (CVSS based, 0.1-3.9)infoCvss: Count of Informational severity vulnerabilities (CVSS based, 0)
Side Effects
The function adds two properties to each vulnerability object:
risk: The calculated risk level based on probability/impactcvssRisk: The risk level based on CVSS score
Examples
Basic vulnerability counting
{project.vulnerabilities | countVulnerabilitiesByRisk}
// Returns: {
// critical: 2,
// high: 5,
// medium: 8,
// low: 3,
// info: 1,
// criticalCvss: 1,
// highCvss: 4,
// mediumCvss: 7,
// lowCvss: 5,
// infoCvss: 2
// }Accessing specific counts
{project.vulnerabilities | countVulnerabilitiesByRisk | get:"critical"}
// Returns: 2Using in conditional logic
{project.vulnerabilities | countVulnerabilitiesByRisk | get:"high" | greaterThan:0}
// Returns: true if there are high severity vulnerabilitiesCreating a summary table
{vulnerabilities | countVulnerabilitiesByRisk}
// Use the returned object to populate a risk summary tableUse Cases
- Executive summary risk statistics
- Vulnerability distribution charts
- Risk-based prioritization reports
- Compliance reporting requiring severity counts
- Dashboard metrics for security posture