Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Cvss

ASecurity

Score a vulnerability with CVSS v4.0: derive the metric vector (Base, plus Threat/Environmental refinement where context supports it), compute the exact score via the official algorithm, and explain each metric choice. Use whenever a finding needs a defensible severity rather than a guess.

8 stars
0 votes
0 copies
0 views
Added 9/19/2026
ai-agentspythongosecurity

Security Analysis

A92/100
mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned 9/19/2026

$npx -y skills add jassics/awesome-claude-security --skill cvss --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Cvss?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Cvss
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/jassics-cvss/badge)](https://www.skillsdirectory.com/skills/jassics-cvss)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: cvss
description: >-
  Score a vulnerability with CVSS v4.0: derive the metric vector (Base, plus
  Threat/Environmental refinement where context supports it), compute the
  exact score via the official algorithm, and explain each metric choice.
  Use whenever a finding needs a defensible severity rather than a guess.
---

# Goal

A defensible CVSS 4.0 score: the full vector string, numeric score, severity
band, and a one-line justification per metric — computed exactly, not
eyeballed or hand-calculated.

# Why not compute it by hand

CVSS 3.1's base score was a closed-form arithmetic formula reasoning could
walk through step by step. CVSS 4.0 is not: it maps the vector to one of 270
"MacroVectors" (via 6 equivalence classes) and looks up/interpolates a score
from a table defined in the official specification. Reproducing that table
from memory is exactly the kind of thing that looks plausible and is quietly
wrong. Reason through *which metric values apply* from the evidence (that
part is still judgment), then get the actual number from
`scripts/cvss4-score.py`, which wraps the `cvss` PyPI package (RedHat
Product Security's implementation of the official algorithm) rather than
reimplementing the lookup table.

# Base metrics (decide each, then state why)

Exploitability:
- **AV** Attack Vector — Network / Adjacent / Local / Physical
- **AC** Attack Complexity — Low / High
- **AT** Attack Requirements — None / Present (new in 4.0: does exploitation
  need a specific pre-existing condition — a race window, a prior
  misconfiguration already in place — beyond the attacker's own actions?)
- **PR** Privileges Required — None / Low / High
- **UI** User Interaction — None / Passive / Active

Impact — **two separate sets**, replacing 3.1's single Scope-gated C/I/A:
- **VC / VI / VA** — Confidentiality / Integrity / Availability impact on the
  **Vulnerable System** itself (the thing with the flaw).
- **SC / SI / SA** — Confidentiality / Integrity / Availability impact on a
  **Subsequent System** (anything downstream the vulnerable system can affect
  but didn't itself contain the flaw) — None / Low / High for both sets.

This is the single most important conceptual change from 3.1: there is no
`Scope` metric anymore. Where 3.1 forced a binary Unchanged/Changed judgment
call (the most-misjudged metric in that spec), 4.0 asks directly "what
happens to the vulnerable system" and "what happens beyond it" as two
independently-scored impact sets. If a flaw only affects the component that
has it, leave SC/SI/SA at None. If exploiting it lets an attacker reach data
or systems outside that component's own authority (as with the KubeHawk
agent finding — its own cluster-wide RBAC read access meant compromising it
disclosed data belonging to the whole cluster, not just the agent pod), that
belongs in VC (what the agent itself discloses) with the broader blast
radius reasoned about in the writeup even though CVSS 4.0's SC/SI/SA is
specifically about *causing* impact on a separate system, not merely *having
read access* to one — be precise about which set actually applies.

# Optional refinement metrics (only score these if the context supports it)

- **Threat (E — Exploit Maturity):** Not Defined / Unreported / Proof-of-
  Concept / Attacked. Renamed from 3.1's "Temporal" group.
- **Environmental:** `CR`/`IR`/`AR` (Confidentiality/Integrity/Availability
  Requirements for the affected asset — how much does *this* organization
  depend on it), plus Modified Base metrics (`MAV`, `MAC`, `MAT`, `MPR`,
  `MUI`, `MVC`, `MVI`, `MVA`, `MSC`, `MSI`, `MSA`) if a compensating control
  or asset-specific context changes a Base value. There is no separate
  "environmental formula" to run afterward — `cvss4-score.py` computes the
  final score from whatever combination of Base/Threat/Environmental metrics
  the vector contains in one pass.
- **Supplemental (informational only, never changes the score):** Safety,
  Automatable, Recovery, Value Density, Vulnerability Response Effort,
  Provider Urgency. Include these in the writeup when they materially affect
  how a reader should prioritize the finding, but don't expect them to move
  the number.

# Severity bands

Unchanged from 3.1: `0.0` None · `0.1–3.9` Low · `4.0–6.9` Medium ·
`7.0–8.9` High · `9.0–10.0` Critical.

# Steps

1. Reason through each Base metric from the evidence; note assumptions
   explicitly (especially for AT, and for which impact set — VC/VI/VA vs
   SC/SI/SA — actually applies).
2. Add Threat/Environmental metrics only if the engagement/report context
   actually supports them (a known exploit-maturity signal, a stated asset
   criticality, a documented compensating control) — don't invent values to
   fill out the vector.
3. Build the vector string: `CVSS:4.0/AV:_/AC:_/AT:_/PR:_/UI:_/VC:_/VI:_/VA:_/SC:_/SI:_/SA:_`
   (append any Threat/Environmental metrics after the Base block).
4. Run the script to get the exact score:
   ```
   python3 <plugin-root>/scripts/cvss4-score.py "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N"
   ```
   Requires the `cvss` package (`pip install cvss`); the script fails open
   (exit 2) rather than fabricating a score if it's missing.
5. Report the score, vector, and a one-line rationale per metric — state
   assumptions so the score can be challenged and reproduced.

# Output

```
CVSS 4.0: <score> (<Severity>)
Vector: CVSS:4.0/AV:_/AC:_/AT:_/PR:_/UI:_/VC:_/VI:_/VA:_/SC:_/SI:_/SA:_
Rationale: AV=… AC=… AT=… PR=… UI=… VC=… VI=… VA=… SC=… SI=… SA=…
```

# Notes

- Be explicit about which impact set (VC/VI/VA vs SC/SI/SA) applies to each
  consequence you describe — this replaces Scope as the metric most likely
  to be misjudged, so state the reasoning, not just the letter values.
- `security-reporting:finding`'s template references this skill for
  severity — use CVSS 4.0 there now, not 3.1.

Attribution

jassicsjassics
View sourceSee grades on GitHubMore from jassics →
SSkills Directory ProSkills Directory

Get any skill into Claude in one click.

Download any skill as a ZIP for Claude.ai, Claude Desktop, or .claude/skills. $9/mo.

See Pro

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills Directory ProSkills Directory

Get any skill into Claude in one click.

Download any skill as a ZIP for Claude.ai, Claude Desktop, or .claude/skills. $9/mo.

See Pro

Related Skills

Caveman

Ultra-compressed communication mode that cuts output tokens while keeping technical accuracy. Levels: lite, full, ultra and the wenyan variants. Use for /caveman, "caveman mode", "talk like caveman", "be brief" or "less tokens".

1074701 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

696561 votes

Writing Skills

Create and manage Claude Code skills in HASH repository following Anthropic best practices. Use when creating new skills, modifying skill-rules.json, understanding trigger patterns, working with hooks, debugging skill activation, or implementing progressive disclosure. Covers skill structure, YAML frontmatter, trigger types (keywords, intent patterns), UserPromptSubmit hook, and the 500-line rule. Includes validation and debugging with SKILL_DEBUG. Examples include rust-error-stack, cargo-dep...

3931 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3351 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

691 votes
View all in ai-agents →