0xdad025 downloadsCompute CVSS 3.1 scores with an interactive popup selector.
An Obsidian plugin that opens a single popup to compute CVSS 3.1 scores interactively. Select all metric options, see the score update in real time, then copy the vector string or insert the result directly into your note.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)| Group | Metric | Values |
|---|---|---|
| Exploitability | Attack Vector (AV) | Network, Adjacent, Local, Physical |
| Exploitability | Attack Complexity (AC) | Low, High |
| Exploitability | Privileges Required (PR) | None, Low, High |
| Exploitability | User Interaction (UI) | None, Required |
| Scope | Scope (S) | Unchanged, Changed |
| Impact | Confidentiality (C) | None, Low, High |
| Impact | Integrity (I) | None, Low, High |
| Impact | Availability (A) | None, Low, High |
Privileges Required weights are automatically adjusted when Scope = Changed, as per the CVSS 3.1 specification.
| Score range | Rating |
|---|---|
| 0.0 | Info |
| 0.1 – 3.9 | Low |
| 4.0 – 6.9 | Medium |
| 7.0 – 8.9 | High |
| 9.0 – 10.0 | Critical |
<vault>/.obsidian/plugins/cvss-calculator/main.js
<vault>/.obsidian/plugins/cvss-calculator/manifest.json
<vault>/.obsidian/plugins/cvss-calculator/styles.css
git clone <repo-url>
cd obsidian-cvss
npm install
npm run build
Outputs main.js (minified, no source map) alongside manifest.json and styles.css. Copy all three to your plugin folder.
npm run dev
Watches main.ts for changes and rebuilds with inline source maps. Useful when the plugin folder is symlinked to the repo root:
# Example: symlink the repo directly into the vault
ln -s /path/to/obsidian-cvss /path/to/vault/.obsidian/plugins/cvss-calculator
Then enable the plugin in Obsidian and use Ctrl+R (or the "Reload app without saving" command) to pick up changes.
obsidian-cvss/
├── main.ts # Plugin source (TypeScript)
├── main.js # Compiled output (generated — do not edit)
├── styles.css # Modal styles
├── manifest.json # Obsidian plugin metadata
├── package.json # npm scripts and dev dependencies
├── tsconfig.json # TypeScript compiler config
└── esbuild.config.mjs # Bundler config
| Tool | Purpose |
|---|---|
| TypeScript 4.7 | Type-safe source |
| esbuild 0.17 | Fast bundler / minifier |
| obsidian (npm) | Obsidian API type definitions |
Implements the CVSS 3.1 Base Score formula exactly as defined by FIRST:
ISS = 1 − [(1 − C) × (1 − I) × (1 − A)]
Impact = 6.42 × ISS (Scope Unchanged)
= 7.52 × [ISS − 0.029] − 3.25 × [ISS − 0.02]^15 (Scope Changed)
Exploitability = 8.22 × AV × AC × PR × UI
Base Score = Roundup(Min[Impact + Exploitability, 10]) (Scope Unchanged)
= Roundup(Min[1.08 × (Impact + Exploitability), 10]) (Scope Changed)
Roundup returns the smallest value with one decimal place greater than or equal to the input.
**CVSS 3.1 Score:** 9.8 (Critical)
`CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H`
stato or status set to aperto or open (case-insensitive).cvss_vector, the metrics are pre-selected.| Property | Example value |
|---|---|
cvss_vector |
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
cvss_score |
9.8 |
cvss_severity |
CRITICAL |
cvss_link |
https://www.first.org/cvss/calculator/3.1#CVSS:3.1/… |
cvss_severityis always written in uppercase (INFO,LOW,MEDIUM,HIGH,CRITICAL).
cvss_vector already exists. Click Update CVSS to write the same four frontmatter properties listed above.MIT