agentsclimarketplace

Cvss extraction

Skill cxcscmu/SkillLearnBench/skills/b1-one-shot-gemini-3.1-pro-preview/dependency-vulnerability-check/cvss-extraction

Extract CVSS scores from Trivy JSON output.From its SKILL.md

Install
npx -y skills add cxcscmu/SkillLearnBench --skill cvss-extraction

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

SKILL.md

1.5 KB, 425 tokens by cl100k_base, as published. Nobody here has run it

Extracting CVSS Scores from Trivy JSON

Trivy outputs vulnerabilities with multiple CVSS scores depending on the source (e.g., NVD, RedHat, GHSA). This skill helps you extract the most relevant score.

JSON Structure

In the Trivy output, vulnerabilities are nested under Results[] -> Vulnerabilities[]. Inside a vulnerability, CVSS information is stored inside the CVSS dictionary.

{
  "CVSS": {
    "nvd": {
      "V3Vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
      "V3Score": 9.8
    },
    "redhat": {
      "V3Vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
      "V3Score": 9.8
    },
    "ghsa": {
      "V3Score": 9.8
    }
  }
}

Python Implementation

You can write a Python helper to extract a CVSS score from these sources, preferring NVD if available, followed by GHSA and RedHat, falling back to "N/A" if none are present.

def extract_cvss(vuln):
    cvss_data = vuln.get("CVSS", {})
    # Sources in order of preference
    for source in ["nvd", "ghsa", "redhat", "ubuntu", "debian", "alpine"]:
        if source in cvss_data:
            score = cvss_data[source].get("V3Score")
            if score is not None:
                return score
            # Fallback to V2Score if V3 is not present
            score = cvss_data[source].get("V2Score")
            if score is not None:
                return score
    return "N/A"

This snippet ensures robust extraction of CVSS scores for reporting purposes.

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.