sbom-analyzer
Software Bill of Materials (SBOM) security analysis for vulnerability assessment and third-party risk management. Validates SBOMs from vendors or generates SBOMs for internal projects. Use this skill when: - User asks to analyze an SBOM file - User mentions "third-party risk" or "vendor security" - User needs to validate a supplier's SBOM - User wants to check SBOM for vulnerabilities - User asks about CycloneDX or SPDX formats
What this skill does
# SBOM Security Analyzer
Analyze Software Bill of Materials to identify vulnerabilities in declared components for third-party risk management and compliance workflows.
**Core Principle**: Know what's in your software supply chain.
---
## Quick Start
```
1. Receive or locate SBOM file (CycloneDX or SPDX)
2. Validate SBOM format and completeness
3. Run mcp_snyk_snyk_sbom_scan for vulnerability analysis
4. Generate risk report with prioritized findings
5. Provide remediation guidance
```
---
## Supported SBOM Formats
| Format | Versions | File Extension |
|--------|----------|----------------|
| **CycloneDX** | 1.4, 1.5, 1.6 | `.json` |
| **SPDX** | 2.3 | `.json` |
**Note**: `mcp_snyk_snyk_sbom_scan` requires Package URLs (purls) in the SBOM for component identification.
---
## Phase 1: SBOM Validation
**Goal**: Ensure the SBOM is valid and complete before analysis.
### Step 1.1: Identify SBOM Format
Check the file structure:
**CycloneDX Indicators**:
```json
{
"bomFormat": "CycloneDX",
"specVersion": "1.5",
"components": [...]
}
```
**SPDX Indicators**:
```json
{
"spdxVersion": "SPDX-2.3",
"SPDXID": "SPDXRef-DOCUMENT",
"packages": [...]
}
```
### Step 1.2: Validate Completeness
Check for required elements:
| Element | CycloneDX | SPDX | Required |
|---------|-----------|------|----------|
| Format version | `specVersion` | `spdxVersion` | Yes |
| Component list | `components` | `packages` | Yes |
| Package URLs | `purl` in components | `externalRefs` | Yes* |
| Licenses | `licenses` | `licenseConcluded` | Recommended |
| Checksums | `hashes` | `checksums` | Recommended |
**\*** Package URLs are required for Snyk to identify vulnerabilities.
### Step 1.3: Report Validation Issues
If SBOM is incomplete, produce a report in this format:
```
## SBOM Validation Results
**File**: supplier-sbom.json
**Format**: CycloneDX 1.5
### Issues Found
| Issue | Severity | Count |
|-------|----------|-------|
| Missing purl | Error | 15 components |
| Missing license | Warning | 8 components |
| Missing checksum | Info | 23 components |
### Components Without purl (Cannot Scan)
- component-a (no package URL)
- component-b (no package URL)
**Recommendation**: Request updated SBOM from supplier with package URLs.
```
---
## Phase 2: Security Scan
**Goal**: Identify vulnerabilities in SBOM components.
### Step 2.1: Run SBOM Scan
Call the tool directly:
```
mcp_snyk_snyk_sbom_scan(file="path/to/sbom.json", severity_threshold="medium")
```
### Step 2.2: Organization-Scoped Scan
To apply org-specific policies:
```
mcp_snyk_snyk_sbom_scan(file="path/to/sbom.json", org="<org-id>", severity_threshold="high")
```
---
## Phase 3: Risk Analysis
**Goal**: Generate a comprehensive risk report from scan results.
Produce a single consolidated report covering summary, critical findings, and an overall risk score:
```
## SBOM Security Analysis
### Overview
| Metric | Value |
|--------|-------|
| Total Components | 156 |
| Components Scanned | 141 |
| Components Skipped | 15 (missing purl) |
| Vulnerable Components | 23 |
| Total Vulnerabilities | 47 |
### Severity Breakdown
| Severity | Count |
|----------|-------|
| Critical | 3 |
| High | 12 |
| Medium | 18 |
| Low | 14 |
### Critical Vulnerabilities
| Component | Version | CVE | CVSS | Exploited |
|-----------|---------|-----|------|-----------|
| log4j-core | 2.14.1 | CVE-2021-44228 | 10.0 | Yes |
| spring-core | 5.3.17 | CVE-2022-22965 | 9.8 | Yes |
| jackson-databind | 2.9.10 | CVE-2020-36518 | 9.8 | No |
### Risk Score: 78/100 (High Risk)
- ⚠️ 2 vulnerabilities with known exploits
- ⚠️ 3 critical severity issues
- ✓ Components from untrusted sources: 0
**Recommendation**: Do not integrate this software until critical vulnerabilities are addressed.
```
---
## Phase 4: Remediation Guidance
**Goal**: Provide actionable upgrade recommendations and vendor communication.
### Step 4.1: Upgrade Recommendations
```
## Recommended Actions
### Priority 1: Critical (Must Fix)
| Component | Current | Fixed Version | Notes |
|-----------|---------|---------------|-------|
| log4j-core | 2.14.1 | 2.17.1+ | Log4Shell |
| spring-core | 5.3.17 | 5.3.18+ | Spring4Shell |
### Priority 2: High (Should Fix)
| Component | Current | Fixed Version | Notes |
|-----------|---------|---------------|-------|
| lodash | 4.17.15 | 4.17.21 | Prototype pollution |
| axios | 0.21.1 | 1.6.0+ | SSRF vulnerability |
### Priority 3: Medium (Plan to Fix)
| Component | Current | Fixed Version | Notes |
|-----------|---------|---------------|-------|
| minimist | 1.2.5 | 1.2.8+ | Prototype pollution |
```
### Step 4.2: Vendor Communication
Draft a message to the vendor using this template (populate with actual findings):
```
Subject: Security Vulnerabilities in Software SBOM
Dear [Vendor],
During our security review of [Product Name], we identified the following
vulnerabilities in the provided SBOM:
**Critical Issues (Require Immediate Action)**:
1. [Component] [Version] - [CVE] ([Name])
2. [Component] [Version] - [CVE] ([Name])
**Request**:
1. Provide updated software with patched versions
2. Provide updated SBOM reflecting the changes
3. Confirm expected remediation timeline
We require resolution of critical issues before proceeding with integration.
Regards,
[Your Name]
```
---
## SBOM Generation (Internal Projects)
To generate an SBOM for your own project using the Snyk CLI, then scan it:
```bash
# Generate CycloneDX SBOM
snyk sbom --format=cyclonedx1.5+json > sbom.json
# Generate SPDX SBOM
snyk sbom --format=spdx2.3+json > sbom.json
```
Then scan the generated SBOM:
```
mcp_snyk_snyk_sbom_scan(file="sbom.json")
```
---
## Error Handling
### Invalid SBOM Format
```
Error: Unable to parse SBOM file
Solutions:
1. Verify file is valid JSON
2. Check SBOM format (CycloneDX/SPDX)
3. Validate against schema
4. Request corrected SBOM from source
```
### Missing Package URLs
```
Warning: X components missing purl - cannot scan
Solutions:
1. Request updated SBOM with purls
2. Manually add purls if components are known
3. Document risk of unscanned components
```
### Unsupported Version
```
Error: SBOM version not supported
Supported versions:
- CycloneDX: 1.4, 1.5, 1.6
- SPDX: 2.3
Convert SBOM to supported version if possible.
```
---
## Constraints
1. **Requires purls**: Components without package URLs cannot be scanned
2. **JSON only**: XML format not currently supported
3. **Version limits**: Only specific CycloneDX/SPDX versions supported
4. **Network required**: Vulnerability database lookup needs connectivity
5. **Point-in-time**: SBOM reflects a specific version — rescan on updates
Related in Security
mac-ops
IncludedComprehensive macOS workstation operations — diagnose kernel panics, identify failing drives, audit launchd startup items, decode wake reasons, triage TCC permission denials, manage APFS snapshots, recover from no-boot. Use for: Mac is slow, slow bootup, won't boot, kernel panic, kernel_task hot, mds_stores CPU, photoanalysisd, cloudd, login loop, gray screen, sleep wake failure, drive failing, IO errors, APFS snapshots eating space, Time Machine local snapshots, Spotlight indexing, launchd, LaunchAgent, LaunchDaemon, login items, TCC permissions, Full Disk Access, Screen Recording denied, Gatekeeper, quarantine, com.apple.quarantine, app is damaged, helper tool, /Library/PrivilegedHelperTools, pmset, wake reasons, dark wake, sysdiagnose, panic.ips, DiagnosticReports, configuration profile, MDM profile, remote diagnostics over SSH.
a11y-audit
IncludedRun accessibility audits on web projects combining automated scanning (axe-core, Lighthouse) with WCAG 2.1 AA compliance mapping, manual check guidance, and structured reporting. Output is configurable: markdown report only, markdown plus machine-readable JSON, or markdown plus issue tracker integration. Use this skill whenever the user mentions "accessibility audit", "a11y audit", "WCAG audit", "accessibility check", "compliance scan", or asks to check a web project for accessibility issues. Also trigger when the user wants to verify WCAG conformance or map findings to a specific standard (CAN-ASC-6.2, EN 301 549, ADA/AODA).
erpclaw
IncludedAI-native ERP system with self-extending OS. Full accounting, invoicing, inventory, purchasing, tax, billing, HR, payroll, advanced accounting (ASC 606/842, intercompany, consolidation), and financial reporting. 413 actions across 14 domains, 43 expansion modules. Constitutional guardrails, adversarial audit, schema migration. Double-entry GL, immutable audit trail, US GAAP.
assess
IncludedAssesses and rates quality 0-10 across multiple dimensions (correctness, maintainability, security, performance, testability, simplicity) with pros/cons analysis. Compares against project conventions and prior decisions from memory. Produces structured evaluation reports with actionable improvement suggestions. Use when evaluating code, designs, architectures, or comparing alternative approaches.
spring-boot-security-jwt
IncludedProvides JWT authentication and authorization patterns for Spring Boot 3.5.x covering token generation with JJWT, Bearer/cookie authentication, database/OAuth2 integration, and RBAC/permission-based access control using Spring Security 6.x. Use when implementing authentication or authorization in Spring Boot applications.
code-hardcode-audit
IncludedDetect hardcoded values, magic numbers, and leaked secrets. TRIGGERS - hardcode audit, magic numbers, PLR2004, secret scanning.