VulnDash
unlistedby Carlos Aguilar
Near-live vulnerability and CVE dashboard for Obsidian.
VulnDash
VulnDash is a near-live vulnerability and Common Vulnerabilities and Exposures (CVE) dashboard integrated directly into your Obsidian vault. It aggregates security advisories from multiple sources, filters them against your specific software stack, and automatically alerts you to critical threats.
Features
- Unified Dashboard: View a sortable, filterable table of vulnerabilities fetched from the National Vulnerability Database (NVD), GitHub Advisories, specific GitHub repositories, or custom JSON feeds.
- SBOM Integration: Import CycloneDX Software Bill of Materials (SBOM) JSON files directly from your vault. VulnDash automatically parses these files to filter the dashboard, showing only vulnerabilities relevant to the components you actually use.
- Smart Alerting & Note Creation: Get native Obsidian notices or OS-level desktop notifications when new threats matching your stack are detected. Automatically generate Obsidian notes for new HIGH or CRITICAL vulnerabilities to document mitigation strategies.
- Advanced Filtering: Filter noise by setting minimum CVSS scores, severity levels, or using keyword and regular expression matching.
- Local & Secure: API keys are encrypted using the Web Crypto API before being stored locally on your device. They are never logged or exposed in plain text.
Installation
Community Plugins (Recommended)
Once approved and merged, you will be able to install VulnDash directly from the Obsidian Community Plugins directory.
- Open Obsidian Settings -> Community Plugins.
- Disable "Safe Mode" if it is active.
- Click "Browse" and search for "VulnDash".
- Click "Install" and then "Enable".
Manual Installation
- Download the latest release from the GitHub repository.
- Extract the contents into your vault's
.obsidian/plugins/vulndashdirectory. - Ensure the folder contains
main.js,manifest.json, andstyles.css. - Reload Obsidian and enable the plugin in Settings -> Community Plugins.
Configuration
By default, VulnDash can fetch data anonymously, but you will quickly hit API rate limits. It is highly recommended to configure your own API keys.
- Go to Settings > VulnDash.
- Under Integration & Export, provide your NVD API key and a fine-grained GitHub token.
- Adjust your Polling interval and Cache duration to suit your needs.
Adding SBOMs
To make VulnDash fully aware of your environment, configure it to watch your software stack:
- Place a valid CycloneDX SBOM
.jsonfile anywhere in your Obsidian vault. - Go to Settings > VulnDash and click Manage SBOMs under the SBOM Workspace section.
- Click Add SBOM and use the fuzzy search to select your JSON file.
- VulnDash will parse the components and compute a list of product filters. You can inspect these components, rename them to match CVE naming conventions, or exclude them from filtering entirely.
Usage
Once enabled and configured, you can open the dashboard in two ways:
- Click the ribbon icon in the Obsidian left-hand sidebar.
- Open the Command Palette (
Ctrl/Cmd + P) and run the command:VulnDash: Open vulnerability dashboard.
Inside the dashboard:
- Sorting: Click any column header (ID, Title, Source, Severity, CVSS, Published) to sort the vulnerabilities.
- Searching: Use the search bar at the top of the dashboard to quickly filter visible results.
- Expanding Details: Click on any vulnerability row to expand it. This reveals the full markdown-rendered summary and external reference links to the original advisories.
Development
If you wish to compile the plugin locally:
- Clone the repository and install dependencies:
npm install - Run strict checks and compile the plugin:
npm run build - Generate the CycloneDX SBOM JSON for the plugin itself:
npm run sbom - Copy the compiled artifacts (
manifest.json,main.js,styles.css) to your vault's plugin folder:mkdir -p <Vault>/.obsidian/plugins/vulndash cp dist/manifest.json dist/main.js dist/styles.css <Vault>/.obsidian/plugins/vulndash/
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.