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

Sca

ASecurity

Expert routing agent for Software Composition Analysis (SCA). Covers open source vulnerability management, CVE/CVSS scoring, license compliance, SBOM generation, reachability analysis, and dependency update automation. Routes to Snyk OSS, Dependabot, Mend, and Black Duck. WHEN: \"SCA\", \"software composition analysis\", \"open source vulnerabilities\", \"dependency scanning\", \"CVE\", \"SBOM\", \"license compliance\", \"supply chain security\", \"transitive dependencies\", \"dependency upda...

4 stars
0 votes
0 copies
0 views
Added 9/24/2026
securityjavascriptpythongojavabashexpressgitdatabasesecuritydocumentation

Security Analysis

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

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

Scanned 9/24/2026

$npx -y skills add chrishuffman5/domain-expert --skill sca --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Sca?

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

Security grade badge for Sca
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/chrishuffman5-sca/badge)](https://www.skillsdirectory.com/skills/chrishuffman5-sca)

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: sca
description: "Expert routing agent for Software Composition Analysis (SCA). Covers open source vulnerability management, CVE/CVSS scoring, license compliance, SBOM generation, reachability analysis, and dependency update automation. Routes to Snyk OSS, Dependabot, Mend, and Black Duck. WHEN: \"SCA\", \"software composition analysis\", \"open source vulnerabilities\", \"dependency scanning\", \"CVE\", \"SBOM\", \"license compliance\", \"supply chain security\", \"transitive dependencies\", \"dependency updates\". Do NOT use for tool-specific questions -- use the `snyk-oss`, `dependabot`, `mend`, or `black-duck` skill."
license: MIT
---

# Software Composition Analysis (SCA)

This skill covers Software Composition Analysis — identifying and managing vulnerabilities and license risks in open-source and third-party dependencies.

## How to Approach Tasks

1. **Identify the tool** -- Read the relevant sibling skill when a tool is named.
2. **Identify the concern:**
   - **Vulnerability management** -- CVEs in dependencies, patch availability
   - **License compliance** -- Copyleft licenses, commercial restrictions
   - **SBOM** -- Software Bill of Materials generation and management
   - **Supply chain security** -- Package integrity, provenance, dependency confusion
   - **Automation** -- Auto-fix PRs, update management

## Tool Routing

| User mentions | Route to |
|---|---|
| Snyk, Snyk Open Source, Snyk OSS, snyk test | `snyk-oss` |
| Dependabot, dependabot.yml, GitHub security updates | `dependabot` |
| Mend, WhiteSource, Renovate, mend.io | `mend` |
| Black Duck, Synopsys, binary SCA, SOUP | `black-duck` |

## SCA Fundamentals

### Vulnerability Data Sources

SCA tools compare your dependencies against vulnerability databases:

| Database | Source | Notes |
|---|---|---|
| NVD (National Vulnerability Database) | NIST | Authoritative CVE database, US government |
| OSV (Open Source Vulnerabilities) | Google | Open, machine-readable, aggregates many sources |
| GitHub Advisory Database | GitHub | Includes private research, curated |
| Snyk Vulnerability DB | Snyk | Proprietary + curated, faster publication |
| OSS Index | Sonatype | Free lookup service |
| VulnDB | Risk Based Security | Commercial, broadest coverage |

**Coverage gaps:** NVD can lag weeks to months behind disclosure. Commercial databases (Snyk, Mend) publish vulnerabilities faster due to active research teams.

### CVSS Scoring

SCA tools use CVSS (Common Vulnerability Scoring System) to score severity:

**CVSS v3.1 Base Score components:**
- **Attack Vector (AV):** Network (highest risk) / Adjacent / Local / Physical
- **Attack Complexity (AC):** Low / High
- **Privileges Required (PR):** None / Low / High
- **User Interaction (UI):** None / Required
- **Scope (S):** Changed / Unchanged
- **Confidentiality (C):** High / Low / None
- **Integrity (I):** High / Low / None
- **Availability (A):** High / Low / None

**Score ranges:**
- Critical: 9.0-10.0
- High: 7.0-8.9
- Medium: 4.0-6.9
- Low: 0.1-3.9

**CVSS limitations:** Base score is context-free. Use Temporal score (exploit maturity, patch availability) and Environmental score (actual impact to your system) for prioritization.

### Transitive Dependencies

The majority of open-source vulnerabilities are in transitive (indirect) dependencies — packages your direct dependencies depend on.

```
Your app
├── express@4.18.0 (direct)
│   ├── path-to-regexp@0.1.7 ← Vulnerable (transitive)
│   └── body-parser@1.20.0
│       └── qs@6.10.0 ← Vulnerable (transitive)
└── lodash@4.17.21 (direct)
```

**Resolution strategies:**
1. **Upgrade direct dependency** (easiest) — if newer version of your direct dep ships a patched transitive dep
2. **Override transitive version** — `npm` resolutions field, `pip` direct pinning, Maven `dependencyManagement`
3. **Accept and track** — if no fixed version exists, document risk in SBOM

### License Compliance

Open-source licenses range from permissive to restrictive:

**Permissive (generally safe for commercial use):**
- MIT, BSD 2/3-Clause, Apache 2.0, ISC
- Requires: attribution in documentation

**Weak copyleft (file/component-level):**
- LGPL (v2, v3) — Dynamic linking typically permitted; static linking may trigger copyleft
- Mozilla MPL 2.0 — Copyleft only for modified files

**Strong copyleft (network use triggers):**
- GPL v2, GPL v3 — Distributing modified code requires opening source
- AGPL v3 — Using over a network may trigger open-source requirement (highest risk for SaaS)

**Commercial restrictions:**
- CC BY-NC — Non-commercial only
- Custom BUSL, SSPL — May restrict commercial use

**SCA license policy approach:**
1. Define an approved license list (MIT, Apache 2.0, BSD, ISC typically safe)
2. Define requires-legal-review list (LGPL, MPL)
3. Define blocked list (GPL, AGPL for proprietary software)
4. Configure SCA tool to fail CI on blocked licenses

### SBOM (Software Bill of Materials)

An SBOM is a machine-readable inventory of all software components in an application.

**Formats:**
- **SPDX (Software Package Data Exchange):** Linux Foundation standard, NIST recommended
- **CycloneDX:** OWASP standard, security-focused, widely supported
- **SWID Tags:** ISO standard, used in enterprise/government

**When SBOMs are required:**
- US Executive Order 14028 (2021): Federal agencies must require SBOMs from software vendors
- EU Cyber Resilience Act (2024+): Products with digital elements require SBOMs
- Medical devices (FDA guidance): SBOMs for medical device software
- Financial services: Increasing regulatory guidance

**Generating SBOMs:**

```bash
# CycloneDX for npm
npx @cyclonedx/cyclonedx-npm --output-file sbom.json

# CycloneDX for Maven
mvn org.cyclonedx:cyclonedx-maven-plugin:makeBom

# CycloneDX for Python
pip install cyclonedx-bom
cyclonedx-bom -r -o sbom.xml

# SPDX via syft (container + package scanning)
syft my-app:latest -o spdx-json > sbom.spdx.json
```

### Reachability Analysis

Standard SCA flags any CVE in any dependency you use. Reachability analysis asks: "Is the vulnerable code path actually invoked by your application?"

**Without reachability:** 200 total CVEs across all dependencies → 200 findings.

**With reachability:** 200 total CVEs → 15 reachable (your code actually calls the vulnerable function) → dramatically fewer actionable findings.

**Available in:** Snyk Open Source (for JavaScript, Java, Python), Semgrep Supply Chain, GitHub dependency review (for some ecosystems).

**Limitation:** Reachability requires static analysis of your code. It can still have false positives (paths that appear reachable but are guarded by runtime conditions).

### Supply Chain Security

**Dependency confusion attacks:**
- Attacker publishes malicious package with same name as internal package on public registry
- Build system pulls public package instead of internal one if not configured to prefer internal registry
- **Mitigation:** Use private registry with scope prefixes (`@company/`), configure `npm config set @company:registry https://internal-registry`, use lockfiles

**Typosquatting:**
- Malicious packages named similarly to popular packages (`lodash` → `1odash`)
- **Mitigation:** Verify exact package names; use SCA tools with typosquatting detection

**Compromised packages:**
- Legitimate packages taken over by malicious actors (event-stream, ua-parser-js incidents)
- **Mitigation:** Pin exact versions in lockfiles, monitor security advisories, evaluate package activity/maintainership before adoption

**Package integrity verification:**
```bash
# npm: enable package provenance verification
npm install --include=dev
# Check SIGSTORE signatures for packages with provenance

# pip: hash checking mode
pip install --require-hashes -r requirements.txt

# Maven: verify artifact checksums (done by default in secure repos)
```

### Remediation Prioritization

Not all CVEs need immediate action. Use a risk-based approach:

| Criteria | Weight | Assessment |
|---|---|---|
| CVSS score | High | Base + Temporal |
| Exploitability | Critical | Is there a public exploit? Is it weaponized? |
| Reachability | Critical | Is the vulnerable code path executed? |
| Fix available | High | Is there a patched version? |
| Upgrade effort | Medium | Major version change? Breaking changes? |
| Asset criticality | High | Production customer data vs. internal tool |

**Typical SLA guidelines:**
- Critical (CVSS 9+) + public exploit: 24-48 hours
- High (CVSS 7-9): 7 days
- Medium (CVSS 4-7): 30 days
- Low: Next sprint or dependency update cycle

### SCA in the Pipeline

**Developer workflow:**
1. `snyk test` / `npm audit` / `gradle dependencyCheckAnalyze` locally before commit
2. IDE plugins (Snyk, Mend Advise) for real-time alerts as dependencies are added

**CI pipeline:**
1. SCA scan on every PR (quick, 1-2 minutes)
2. Block merge on newly introduced exploitable CVEs
3. SCA scan on main branch merge (full report for security team)

**Dependency update automation:**
- Dependabot or Renovate runs daily/weekly
- Creates PRs for dependency updates
- Tests run on PR
- Auto-merge safe updates (patch versions, no security risk)
- Flag breaking changes (major versions) for manual review

Attribution

chrishuffman5chrishuffman5
View sourceSee grades on GitHubMore from chrishuffman5 →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

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 DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Springboot Security

Java Spring Boot 服务中关于身份验证/授权、验证、CSRF、密钥、标头、速率限制和依赖安全的 Spring Security 最佳实践。

2456590 votes

Security Review

Use this skill when adding authentication, handling user input, working with secrets, creating API endpoints, or implementing payment/sensitive features. Provides comprehensive security checklist and patterns.

2456590 votes

Paperclip Evals

Choose, inspect, validate, and report Paperclip Runner or Product E2E evaluations while preserving evidence, provenance, cost, and failure classification.

953190 votes

Paperclip Task Bridge

Create, comment on, update, and list Paperclip tasks from Hermes using scoped Paperclip API credentials.

953190 votes

Summarize Status

Write a short, colloquial summary for a Paperclip summary slot: open with the 1–3 specific, concrete actions the reader needs to take right now to unblock the work, then a brief plain-language status, streaming progress as it works.

953190 votes
View all in security →