Analyze CVE reachability in software repositories by examining how vulnerable dependencies are imported and used. Determines whether vulnerable components, classes, or functions are reachable from project code through call chain analysis, reflection detection, dynamic loading patterns, and configuration-gated behavior. Classifies each CVE as likely reachable, possibly reachable, or likely unreachable with supporting evidence. Use when analyzing security vulnerabilities in dependencies, performing post-disclosure CVE triage, assessing vulnerability impact, or when users ask to analyze CVE reachability, check if vulnerabilities are exploitable, or evaluate dependency security risks.
npx skills add https://github.com/ArabelaTso/Skills-4-SE --skill cve-reachability-analyzer
This skill performs static analysis of software repositories to determine whether disclosed CVEs in dependencies are reachable from the project's code. It analyzes import patterns, call chains, dynamic invocation, and configuration to classify each CVE's reachability with evidence-based justification.
Collect and validate the required information:
Check if the vulnerable dependency exists in the project:
Determine if vulnerable components are imported:
Identify if vulnerable code is invoked:
Check for dynamic code execution that may reach vulnerable code:
Class.forName(), Python: getattr(), etc.)importlib, JS: require(variable))eval(), exec(), Function() constructorDetermine if vulnerable code is gated by configuration:
Determine if the code path is actually executed:
Apply classification criteria from cve_analysis.md:
Likely Reachable - All of:
Possibly Reachable - One or more of:
Likely Unreachable - One or more of:
For each CVE, provide comprehensive assessment:
Structure the output as follows:
## CVE Reachability Analysis for [Repository Name]
### Summary
- Total CVEs analyzed: X
- Likely reachable: X
- Possibly reachable: X
- Likely unreachable: X
---
### CVE-YYYY-XXXXX: [Vulnerability Title]
**Package**: package-name
**Affected versions**: < X.Y.Z
**Installed version**: X.Y.Z
**Vulnerable component**: `function_name()` or `ClassName`
**Classification**: Likely Reachable | Possibly Reachable | Likely Unreachable
**Confidence**: High | Medium | Low
#### Evidence
**Dependency presence**:
- Found in: `path/to/dependency-file:line`
- Version X.Y.Z is in vulnerable range (< X.Y.Z)
**Import analysis**:
- Imported in: `path/to/file.ext:line`
import vulnerable_package
**Call chain**:
1. Entry point: `main()` in `src/app.py:10`
2. Calls: `process_request()` in `src/handlers.py:45`
3. Calls: `vulnerable_function()` in `vulnerable_package:100`
**Configuration**:
- Feature flag: `enable_feature_x` (state: enabled in production)
- Environment: Used in production code path
#### Reasoning
[Explain why this classification was chosen, referencing the evidence above]
#### Uncertainty
[Describe any uncertainties, unknowns, or limitations]
#### Recommendations
- **Priority**: High | Medium | Low
- **Action**: Upgrade to version X.Y.Z | Investigate further | Monitor
- **Mitigation**: [If upgrade not possible, suggest alternatives]
---
[Repeat for each CVE]
### Analysis Notes
**Methodology**:
- Static analysis of codebase
- Dependency tree analysis
- Call graph construction
- Configuration review
**Limitations**:
- Dynamic behavior not fully captured
- Runtime configuration may differ from repository
- Transitive dependencies may have additional paths
**Assumptions**:
- Production configuration matches [source]
- Build profile is [profile name]
- Feature flags state: [list states]
10. Document assumptions: Clearly state any assumptions about configuration, environment, or build settings.
User request: "Analyze CVE-2024-12345 affecting log4j in my Java project"
Process:
pom.xml to find log4j versionlookup() methodExpert in secure backend coding practices specializing in input validation, authentication, and API security. Use PROACTIVELY for backend security implementations or security code reviews.
This skill should be used when the user asks to "perform cloud penetration testing", "assess Azure or AWS or GCP security", "enumerate cloud resources", "exploit cloud misconfigurations", "test O365 security", "extract secrets from cloud environments", or "audit cloud infrastructure". It provides comprehensive techniques for security assessment across major cloud platforms.
You are a dependency security expert specializing in vulnerability scanning, license compliance, and supply chain security. Analyze project dependencies for known vulnerabilities, licensing issues, outdated packages, and provide actionable remediation strategies.
Comprehensive Flow Nexus platform management - authentication, sandboxes, app deployment, payments, and challenges
This skill should be used when the user asks to "escalate privileges on Linux", "find privesc vectors on Linux systems", "exploit sudo misconfigurations", "abuse SUID binaries", "exploit cron jobs for root access", "enumerate Linux systems for privilege escalation", or "gain root access from low-privilege shell". It provides comprehensive techniques for identifying and exploiting privilege escalation paths on Linux systems.
Expert malware analyst specializing in defensive malware research, threat intelligence, and incident response. Masters sandbox analysis, behavioral analysis, and malware family identification. Handles static/dynamic analysis, unpacking, and IOC extraction. Use PROACTIVELY for malware triage, threat hunting, incident response, or security research.
This skill should be used when the user asks to "use Metasploit for penetration testing", "exploit vulnerabilities with msfconsole", "create payloads with msfvenom", "perform post-exploitation", "use auxiliary modules for scanning", or "develop custom exploits". It provides comprehensive guidance for leveraging the Metasploit Framework in security assessments.
Expert in secure mobile coding practices specializing in input validation, WebView security, and mobile-specific security patterns. Use PROACTIVELY for mobile security implementations or mobile security code reviews.
Take arabelatso/cve-reachability-analyzer from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.