ai-ml-attacks
This skill should be used when the user asks about "AI security", "ML pipeline attacks", "prompt injection", "model…
This skill should be used when the user asks to "trace data flow", "follow user input", "source to sink analysis", "track variable", "find input sources", "taint analysis", or needs to understand how user-controlled data flows through an application during whitebox security
Claude Code
$ npx -y skills add allsmog/vuln-scout --skill data-flow-tracing --agent claude-code
Codex
$ npx skills add allsmog/vuln-scout --skill data-flow-tracing -a codex -y
Cursor
$ npx skills add allsmog/vuln-scout --skill data-flow-tracing -a cursor -y
Gemini CLI
$ npx skills add allsmog/vuln-scout --skill data-flow-tracing -a gemini-cli -y
GitHub Copilot
$ npx skills add allsmog/vuln-scout --skill data-flow-tracing -a github-copilot -y
OpenCode
$ npx skills add allsmog/vuln-scout --skill data-flow-tracing -a opencode -y
Windsurf
$ npx skills add allsmog/vuln-scout --skill data-flow-tracing -a windsurf -y
name: Data Flow Tracing description: This skill should be used when the user asks to "trace data flow", "follow user input", "source to sink analysis", "track variable", "find input sources", "taint analysis", or needs to understand how user-controlled data flows through an application during whitebox security review. version: 1.0.0
Guide the process of tracing user-controlled input from entry points (sources) through the application to security-sensitive functions (sinks). This is essential for confirming vulnerability exploitability.
Activate this skill when:
**HTTP Sources**: | Language | Common Sources | |----------|----------------| | PHP | `$_GET`, `$_POST`, `$_REQUEST`, `$_COOKIE`, `$_FILES`, `$_SERVER` | | Java | `request.getParameter()`, `request.getHeader()`, `@RequestParam` | | Python | `request.args`, `request.form`, `request.data`, `request.json` | | Node.js | `req.query`, `req.body`, `req.params`, `req.headers` | | .NET | `Request.QueryString`, `Request.Form`, `Request["param"]` |
**Other Sources**:
Refer to the **dangerous-functions** skill for comprehensive sink lists.
Track how data changes between source and sink:
Start from the dangerous function identified during code review.
Identify what variables/parameters are passed to the sink.
Example: system($cmd); Direct parameter: $cmd
Follow each parameter to its origin:
1. Check function parameters 2. Check variable assignments 3. Check conditional branches 4. Check loop iterations 5. Check included/required files
Determine where user input enters:
$cmd = $_GET['command']; // Direct source $cmd = $row['command']; // Database (check how it was stored) $cmd = $config['cmd']; // Config file (check if user-modifiable)
Document all changes to the data:
Source: $_GET['input'] -> urldecode() -> str_replace(['../', '..\\'], '', $input) -> escapeshellarg() -> Sink: exec()
Consider:
**Forward Tracing**: Start from source, follow to sinks
$input = $_GET['x']; $processed = process($input); dangerous_function($processed);
**Backward Tracing**: Start from sink, trace to source
dangerous_function($var); <- $var = transform($data); <- $data = $_POST['param'];
# Find where variable is assigned
grep -rn "\$varname\s*=" --include="*.php"
# Find where variable is used
grep -rn "\$varname" --include="*.php"
# Find function calls
grep -rn "functionName\s*(" --include="*.php"$input = $_GET['cmd']; system($input); // Vulnerable
// Store
$db->insert(['cmd' => $_POST['cmd']]);
// Later, retrieve and execute
$row = $db->query("SELECT cmd FROM jobs")->fetch();
system($row['cmd']); // Vulnerable if original input wasn't sanitized// Config loaded from user-modifiable file
$config = parse_ini_file('/var/www/config.ini');
system($config['backup_cmd']); // Vulnerable if config is modifiable// file1.php $_SESSION['cmd'] = $_GET['cmd']; // file2.php system($_SESSION['cmd']); // Vulnerable
$input = htmlspecialchars($_GET['x']); // XSS protection
$input = escapeshellarg($_GET['x']); // Command injection protection
$input = intval($_GET['x']); // Type casting
$input = preg_replace('/[^a-z]/', '', $_GET['x']); // Whitelist| Sanitization | Bypass Considerations | |--------------|----------------------| | Blacklist | Missing characters, encoding | | Whitelist | Logic errors, regex flaws | | Type casting | Depends on sink requirements | | Encoding | Double encoding, context | | Length limits | Truncation attacks |
When tracing, document findings:
## Finding: [Vulnerability Type] ### Sink - File: path/to/file.php - Line: 42 - Function: system($cmd) ### Source - File: path/to/file.php - Line: 35 - Source: $_GET['command'] ### Data Flow 1. $_GET['command'] received (line 35) 2. Passed to sanitize() function (line 36) 3. Concatenated with prefix (line 38) 4. Passed to system() (line 42) ### Sanitization - sanitize() removes semicolons and pipes - Bypass: Use newline (%0a) or $() syntax ### Exploitability - Confirmed exploitable - Payload: `valid_command%0awhoami`
AI-powered whitebox penetration testing plugin for Claude Code. 9 languages, 22 skills, 7 autonomous agents. STRIDE threat modeling, OWASP 2025 coverage, polyglot monorepo support.
This skill should be used when the user asks about "AI security", "ML pipeline attacks", "prompt injection", "model…
This skill should be used when the user asks about "business logic", "workflow vulnerability", "trust boundary", "state machine",…
This skill should be used when the user asks about "cache poisoning", "web cache deception", "CDN cache", "proxy cache", "nginx…
This skill should be used when the user asks about "cloud security", "AWS security", "GCP security", "Azure security",…
This skill should be used when the user asks about "compliance mapping", "PCI-DSS", "HIPAA", "SOC 2", "NIST CSF", "regulatory…
This skill should be used when the user asks about "Code Property Graph", "CPG analysis", "Joern queries", "CPGQL", "data flow…
Use for authorized security assessment of REST, GraphQL, WebSocket, or SOAP APIs, including discovery, authentication,…
Extract and decrypt Windows DPAPI-protected secrets (Credential Manager, browser logins/cookies, Wi-Fi credentials, KeePass keys)…
Clean and finalize authorized natural-language text intended for readers by auditing suspicious invisible Unicode and rewriting…