PASTA Stage 5: Vulnerability Analysis
Identify specific weaknesses in code and configuration that could be exploited by Stage 4 threats. This is the core code analysis stage of PASTA. Map each finding to CWE identifiers and correlate with the threat catalog.
Supported Flags
Read ../../shared/schemas/flags.md for the full flag specification. Key behaviors:
Flag Stage 5 Behavior
--scope
Default changed . Analyzes source code, configs, and infrastructure files.
--depth quick
Scanners + grep patterns only, no manual code review.
--depth standard
Full code read, local data-flow analysis, CWE mapping.
--depth deep
Standard + cross-file taint analysis, entry-to-sink tracing, dependency CVE scan.
--depth expert
Deep + exploitability scoring, proof-of-concept path assessment.
--severity
Filter output by severity.
--fix
Generate fix suggestions for each vulnerability found.
Framework Context
Read ../../shared/frameworks/pasta.md , Stage 5 section. PASTA is SEQUENTIAL. Stage 5 consumes Stages 1-4 output and feeds Stage 6.
Prerequisites
Required: Stage 4 output -- threat catalog with MITRE ATT&CK mappings and threat-to-component mapping. Also needs: entry points (Stage 2), components and trust boundaries (Stage 3), business-critical assets (Stage 1). If unavailable, warn and assume.
Workflow
Step 1: Determine Scope
Parse --scope flag (default: changed ). Filter to code and config file types. Prioritize files in components targeted by Stage 4 threats.
Step 2: Check for Scanners
Scanner Detect Coverage
semgrep which semgrep
Injection, auth, crypto, SSRF, XSS
bandit which bandit
Python: injection, crypto, subprocess
gosec which gosec
Go: injection, crypto, file handling
brakeman which brakeman
Rails: injection, XSS, mass assignment
npm audit which npm
Node.js dependency vulnerabilities
trivy which trivy
Container and dependency vulnerabilities
gitleaks which gitleaks
Secrets and credentials in code
Step 3: Run Scanners
Run available scanners, normalize output to ../../shared/schemas/findings.md .
Step 4: Manual Code Analysis
-
Trace data flows: User input from entry points through components to sinks.
-
Check sanitization: Validation, encoding, parameterization between source and sink.
-
Review auth/authz: Authentication enforcement and authorization consistency.
-
Check crypto: Secure algorithms, key management, TLS enforcement.
-
Review configs: Default credentials, debug modes, security headers.
-
Check secrets: Hardcoded credentials, API keys, tokens in source.
Step 5: Correlate with Threats
Map each vulnerability to Stage 4 threat(s) it enables: which actor exploits it, which ATT&CK technique it supports, which business asset it endangers.
Step 6: Assess Exploitability
Evaluate: attack complexity, prerequisite access, mitigating controls, and chaining potential with other vulnerabilities.
Analysis Checklist
-
Are parameterized queries used everywhere, or are there dynamic query paths?
-
Are there deserialization points accepting untrusted input?
-
Do all endpoints enforce authentication and authorization?
-
Are secrets hardcoded or in configuration files within the repository?
-
Are input validation and output encoding applied consistently?
-
Are cryptographic algorithms and key lengths secure and current?
-
Are dependencies up to date with no known CVEs?
-
Are security headers configured (CSP, HSTS, X-Frame-Options)?
Output Format
Stage 5 produces a Vulnerability Inventory with CWE Mappings. ID prefix: PASTA (e.g., PASTA-001 ).
Each finding includes: id, title, severity, location (file, line, function, snippet), description, impact, fix, and references (CWE, MITRE ATT&CK, OWASP).
PASTA Stage 5: Vulnerability Analysis
Vulnerability Inventory
| ID | Vulnerability | CWE | Severity | Component | Enables Threat |
|---|---|---|---|---|---|
| PASTA-001 | SQL injection in search | CWE-89 | Critical | C-02 API | T-01 |
| PASTA-002 | Missing auth on export | CWE-862 | High | C-04 Admin | T-03 |
Vulnerability-Threat Correlation
| Vulnerability | Threats Enabled | Complexity | Existing Controls |
|---|---|---|---|
| PASTA-001 | T-01, T-05 | Low | None |
Scanner Coverage
| Scanner | Status | Findings |
|---|---|---|
| semgrep | Available / Not found | N findings |
Findings follow ../../shared/schemas/findings.md with:
-
references.cwe : CWE identifier, references.mitre_attck : linked technique, references.owasp : OWASP category
-
metadata.tool : "pasta-vulns" , metadata.framework : "pasta" , metadata.category : "Stage-5"
Next Stage
Stage 6: Attack Simulation (pasta-attack-sim ). Pass the Vulnerability Inventory and threat correlations. Stage 6 constructs exploit chains and scores each attack scenario by exploitability and impact.