sast-ssrf

sast-ssrf is a skill for Claude Code, Codex from utkusen/sast-skills. It costs 99 tokens per session (6,880 once invoked), scanned B, original, MIT.

A code-security check for server-side request forgery, where user input can make a server send a network request to an unintended destination.

In plain words
What is it for?
Use it to inspect HTTP, DNS, or TCP requests whose destinations may be influenced by users. It requires a prior code-architecture analysis.
Why use it?
It helps find paths that could expose internal services, cloud metadata, or other systems through attacker-controlled URLs, hosts, or ports. It traces input to outbound network calls and combines the findings.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one. Also seen: mentions subagents; installed under .agents/ (shared by several agents).

Good fit Use it to inspect HTTP, DNS, or TCP requests whose destinations may be influenced by users. It requires a prior code-architecture analysis.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/utkusen/sast-skills/sast-ssrf
About the project

SAST Skills is a collection of agent workflows that inspect web and mobile application code for security vulnerabilities, where SAST means static application security testing. Developers and security reviewers use it to map a codebase, verify possible flaws, and produce a severity-ranked remediation report. The catalogue entries are the project's vulnerability-detection and reporting skills.

utkusen/sast-skills · 1,307 stars · on GitHub

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add utkusen/sast-skills --skill sast-ssrf
Clone the repo
git clone --depth 1 https://github.com/utkusen/sast-skills

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for sast-ssrf

README.md
[![agentmods](https://agentmods.dev/badge/skills/utkusen/sast-skills/sast-ssrf/github.svg)](https://agentmods.dev/skills/utkusen/sast-skills/sast-ssrf)
Your own site
<a href="https://agentmods.dev/skills/utkusen/sast-skills/sast-ssrf"><img src="https://agentmods.dev/badge/skills/utkusen/sast-skills/sast-ssrf/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for sast-ssrf

Your own site · 80×15
<a href="https://agentmods.dev/skills/utkusen/sast-skills/sast-ssrf"><img src="https://agentmods.dev/badge/skills/utkusen/sast-skills/sast-ssrf.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 99 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 6,880 The whole file, excluding the scripts and references it only reads on demand.
Security scan B 3 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00099 $0.06880
Opus 5 $0.00049 $0.03440
Sonnet 5 $0.00020 $0.01376
Haiku 4.5 $0.00010 $0.00688

Measured 12d ago against content hash 57f9a5ef09e1, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-11, from the pricing page.

Security

Grade B, and why

sast-ssrf scanned grade B with 3 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Cloud metadata endpointmediumServer-side request forgery

One request to 169.254.169.254 can return temporary IAM credentials.

> - **Blocklist of private IP ranges / metadata endpoints**: `169.254.169.254`, `10.0.0.0/8`, `192.168.0.0/16`, etc. — **not** sufficient. Bypassable via DNS rebinding, alternate IP representations, and redirect chains.

Downgraded: this mod is about security review, or the phrase is quoted, so it is likely naming the pattern rather than instructing it.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

- HTTP client calls where the URL or host is built from user input: `requests.get(user_url)`

Runs shell commandslowCapability

Expected in a hook, worth knowing in a rule or an instructions file.

> - `subprocess.run(["curl", url, ...])`, `subprocess.Popen(["wget", url, ...])`
Origin

Copies of this mod

1 near-identical copy found in the catalogue:

  • sast-ssrf — 89% identical, 103 lines differ
sast-files/.agents/skills/sast-ssrf/SKILL.md · 544 lines

How it starts

The opening of the file, as written. The whole thing — 544 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Server-Side Request Forgery (SSRF) Detection

You are performing a focused security assessment to find SSRF vulnerabilities in a codebase. This skill uses a three-phase approach with subagents: recon (find all places that make outbound TCP, DNS, or HTTP requests), batched verify (trace whether user-supplied input reaches those call sites, in parallel batches of 3), and merge (consolidate batch reports into one file).

Prerequisites: sast/architecture.md must exist. Run the analysis skill first if it doesn't.


What is SSRF

SSRF occurs when an attacker can cause the server to make outbound network requests to an arbitrary destination — including internal services, cloud metadata endpoints, or other external targets — by supplying or influencing the URL, hostname, IP, or port used in a server-side request.

The core pattern: unvalidated, user-controlled input reaches the destination argument of an outbound network call.

What SSRF IS

  • HTTP client calls where the URL or host is built from user input: requests.get(user_url)
  • Fetching a resource whose location is provided by the client: fetch(req.body.webhook_url)
  • DNS lookups on a hostname supplied by the user: dns.lookup(req.query.host)
  • Raw TCP connections to a host/port derived from user input: socket.connect((user_host, user_port))
  • File-fetching functions used with HTTP/FTP URLs from user input: file_get_contents($user_url)
  • URL redirectors that forward to a user-supplied destination without validation
  • Webhooks, import-from-URL, screenshot services, PDF renderers, image proxies — any feature that fetches a remote resource on behalf of the user

What SSRF is NOT

Do not flag these:

  • Open redirects: Redirecting the browser (HTTP 302) to a user-supplied URL — that's a client-side redirect, not a server-side request
  • XSS via URL: Rendering a user-supplied URL in an <a> tag without escaping — that's XSS
  • IDOR: Accessing another user's data by changing an object ID — separate vulnerability class
  • Hardcoded outbound calls: HTTP requests to fixed, fully hardcoded URLs with no user influence — not SSRF

Read the full file on GitHub · 544 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 12d ago First seen · 544 lines · 99 tokens per session scan B 57f9a5ef09e1

Subscribe to this mod's changes

sast-ssrf is a skill published in the GitHub repository utkusen/sast-skills (1,307 stars, last pushed 5mo ago), licensed MIT. It adds 99 tokens to every session and 6,880 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it B with 3 findings (cloud metadata endpoint, makes network calls, runs shell commands). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

argus

Argus — the all-seeing scanner suite. Six automated scanners for high-value web + LLM bug classes — CORS misconfiguration (origin reflection / null / credentialed read), CRLF & host-header injection, NoSQL injection (operator auth-bypass / $where blind), JWT attacks (alg:none / RS256→HS256 confusion / secret crack)…

Awarexone/Agentic-Bug-Hunter · 166 tokens

debug-rule

Debug a rule or approximation that behaves unexpectedly by tracing where taint is dropped. Use when its samples won't pass after repeated attempts, or it passes tests but is wrong on a real scan.

seqra/opentaint · 40 tokens

ffuf-claude-skill

Skill "ffuf-claude-skill" from Agent-Threat-Rule/agent-threat-rules, covering ffuf claude skill, when to use this skill and instructions.

Agent-Threat-Rule/agent-threat-rules · 14 tokens

report-analyzer-issue

Write a self-contained OpenTaint engine-issue report from an analysis diagnosis or a full-scan failure. Use when an engine-side issue needs a report.

seqra/opentaint · 37 tokens

assess-patch-risk

Assess an immutable patch artifact's program impact, regression risk, and auto-merge eligibility. Use for generated patch files, provider pull-request diffs, or commit ranges when reviewers need evidence about affected runtime paths, contracts, tests, and recoverability. This skill is read-only and does not generate…

bex-co/bex-security · 77 tokens

codeql-expert

Expert-level CodeQL for static analysis, vulnerability detection, and security code scanning. Use when the user mentions static analysis, SAST, vulnerability detection, or github security, or when the task involves writing CodeQL queries, building a CodeQL database, taint tracking, or scanning for injection and…

personamanagmentlayer/pcl · 68 tokens