Skip to main content

sast-ssrf

Detects Server-Side Request Forgery (SSRF) vulnerabilities in codebases using a structured three-phase approach.

Install this skill

or
0/100

Security score

The sast-ssrf skill was audited on Jun 6, 2026 and we found 24 security issues across 3 threat categories, including 1 critical. Review the findings below before installing.

Categories Tested

Security Issues

critical line 336

Direct command execution function call

SourceSKILL.md
336> - `os.system("curl " + url)`, `exec("wget " + url)`
high line 336

System command execution

SourceSKILL.md
336> - `os.system("curl " + url)`, `exec("wget " + url)`
high line 336

Python os.system command execution

SourceSKILL.md
336> - `os.system("curl " + url)`, `exec("wget " + url)`
high line 335

Python subprocess execution

SourceSKILL.md
335> - `subprocess.run(["curl", url, ...])`, `subprocess.Popen(["wget", url, ...])`
high line 467

Curl to non-GitHub URL

SourceSKILL.md
467> Example: curl "https://app.example.com/fetch?url=http://169.254.169.254/latest/meta-data/"
high line 468

Curl to non-GitHub URL

SourceSKILL.md
468> or for internal pivot: curl "https://app.example.com/fetch?url=http://internal-db:5432/"]
medium line 29

Webhook reference - potential data exfiltration

SourceSKILL.md
29- Fetching a resource whose location is provided by the client: `fetch(req.body.webhook_url)`
medium line 34

Webhook reference - potential data exfiltration

SourceSKILL.md
34- Webhooks, import-from-URL, screenshot services, PDF renderers, image proxies — any feature that fetches a remote resource on behalf of the user
low line 121

Webhook reference - potential data exfiltration

SourceSKILL.md
121// VULNERABLE: webhook URL comes directly from request body
low line 122

Webhook reference - potential data exfiltration

SourceSKILL.md
122app.post('/webhook/test', async (req, res) => {
low line 130

Webhook reference - potential data exfiltration

SourceSKILL.md
130app.post('/webhook/test', async (req, res) => {
medium line 270

Webhook reference - potential data exfiltration

SourceSKILL.md
270> **Context**: You will be given the project's architecture summary. Use it to understand the tech stack, HTTP client libraries in use, and any networking or webhook-related components.
medium line 353

Webhook reference - potential data exfiltration

SourceSKILL.md
353> ### 1. [Descriptive name — e.g., "HTTP GET in webhook dispatcher"]
medium line 416

Webhook reference - potential data exfiltration

SourceSKILL.md
416> - Request body / JSON fields: `request.json['webhook_url']`, `req.body.target`, `params[:source]`
medium line 426

Webhook reference - potential data exfiltration

SourceSKILL.md
426> 3. **User input stored and later fetched** — the destination was previously saved from user input (e.g., a stored webhook URL) and is now retrieved from the database to make a request:
medium line 474

Webhook reference - potential data exfiltration

SourceSKILL.md
474> - **Issue**: [e.g., "User controls the path portion of a partially hardcoded URL" or "Stored webhook URL accepted without allowlist at write time"]
low line 60

External URL reference

SourceSKILL.md
60ALLOWED_PREFIXES = ["https://api.example.com/", "https://cdn.example.com/"]
low line 69

External URL reference

SourceSKILL.md
69response = requests.get("https://api.thirdparty.com/data")
low line 185

External URL reference

SourceSKILL.md
185$allowed = ['https://cdn.example.com/'];
low line 340

External URL reference

SourceSKILL.md
340> - Calls where the entire URL and hostname are fully hardcoded string literals with no dynamic parts: `requests.get("https://api.example.com/data")`
low line 422

External URL reference

SourceSKILL.md
422> - `"https://example.com/" + user_path` — may still be exploitable via path traversal or scheme injection depending on the HTTP client
low line 434

External URL reference

SourceSKILL.md
434> - **Scheme-only restriction** (e.g., only allow `https://`): Partial mitigation — reduces impact but does not prevent SSRF to arbitrary HTTPS hosts. Still flag as Likely Vulnerable.
low line 467

External URL reference

SourceSKILL.md
467> Example: curl "https://app.example.com/fetch?url=http://169.254.169.254/latest/meta-data/"
low line 468

External URL reference

SourceSKILL.md
468> or for internal pivot: curl "https://app.example.com/fetch?url=http://internal-db:5432/"]
Scanned on Jun 6, 2026
View Security Dashboard
Installation guide →
GitHub Stars 659
Rate this skill
Categorydevelopment
UpdatedJune 15, 2026
utkusen/sast-skills