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.
git clone --depth 1 https://github.com/morodomi/dev-crewWrote 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.
[](https://agentmods.dev/agents/morodomi/dev-crew/ssti-attacker)<a href="https://agentmods.dev/agents/morodomi/dev-crew/ssti-attacker"><img src="https://agentmods.dev/badge/agents/morodomi/dev-crew/ssti-attacker/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.
<a href="https://agentmods.dev/agents/morodomi/dev-crew/ssti-attacker"><img src="https://agentmods.dev/badge/agents/morodomi/dev-crew/ssti-attacker.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00032 | $0.00883 |
| Opus 5.5 | $0.00013 | $0.00353 |
| Sonnet 5.5 | $0.00006 | $0.00177 |
| Haiku 4.5 | $0.00003 | $0.00088 |
Grade A, and why
ssti-attacker scanned grade A with 0 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 1mo 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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 107 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Detection Targets
| Engine | Framework | Description |
|---|---|---|
| Blade | Laravel | PHPテンプレートエンジン |
| Jinja2 | Flask/Django | Pythonテンプレートエンジン |
| Twig | Symfony | PHPテンプレートエンジン |
| ERB | Ruby/Rails | Rubyテンプレートエンジン |
| EJS | Express | Node.jsテンプレートエンジン |
Framework Detection Patterns
| Framework | Vulnerable Pattern | Safe Pattern |
|---|---|---|
| Laravel | Blade::compileString($input) |
view('template', $data) |
| Flask | render_template_string(input) |
render_template('file.html') |
| Django | Template(input).render() |
render(request, 'file.html') |
| Symfony | $twig->createTemplate($input) |
$twig->render('file.twig') |
| Ruby | ERB.new(input).result |
erb :template |
| Express | ejs.render(input) |
res.render('template') |
Dangerous Patterns
patterns:
# PHP/Laravel (Blade)
- 'Blade::compileString\s*\('
- 'eval\s*\(\s*Blade::'
# Python/Flask (Jinja2)
- 'render_template_string\s*\('
- 'Environment\s*\(\s*\)\.from_string'
# Python/Django (Jinja2)
- 'Template\s*\([^)]*\)\.render'
- 'Template\s*\(\s*request\.'
# PHP/Symfony (Twig)
- 'createTemplate\s*\('
- '->loadTemplate\s*\(\s*\$'
# Ruby (ERB)
- 'ERB\.new\s*\('
# Node.js/Express (EJS)
- 'ejs\.render\s*\([^,]+,'
- 'ejs\.compile\s*\('
Safe Patterns
以下のパターンは誤検知を避けるため除外:
safe_patterns:
# Laravel - ファイルベース
- 'view\s*\(\s*["\']'
- 'View::make\s*\('
# Flask - ファイルベース
- 'render_template\s*\(\s*["\']'
# Django - ファイルベース
- 'render\s*\(\s*request'
# Twig - ファイルベース
- '->render\s*\(\s*["\']'
# Ruby - シンボル指定
- 'erb\s+:'
# Express - ファイルベース
- 'res\.render\s*\(\s*["\']'
Output
Base: {metadata: {scan_id, scanned_at, agent}, vulnerabilities: [{id, type, vulnerability_class, cwe_id, severity, file, line, code, description, remediation}], summary: {total, critical, high, medium, low}}
Extra: prefix=SSTI, types=blade-ssti|jinja2-ssti|twig-ssti|erb-ssti|ejs-ssti
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.
- 1mo ago First seen · 107 lines · 32 tokens per session scan A ab7ff09627b4
ssti-attacker is an agent published in the GitHub repository morodomi/dev-crew (1 stars, last pushed yesterday), licensed MIT. It adds 32 tokens to every session and 883 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other agents, from other repositories
unfolding-api-designer
API Designer role in the Unfolding Specs process. Acts as the API consumer's advocate — challenges the Feature spec from a consumer usability perspective, collaborates with the PO to refine assumptions, and designs API contracts (resource structure, endpoints, request/response shapes, error conventions). Commissioned…
elite-developer
Principal Full-Stack Engineer. Deterministic implementation engine. Master of TDD, formal verification, and architectural minimalism.
cascade-worker
Implements code changes in a single service. Called by cascade-orchestrator with a specific service path and change description. Follows TDD when test infrastructure exists. Does NOT update contracts.
webapi-integration
Use this agent when the user needs to integrate Power Pages Web API for a specific Dataverse table into their frontend code. Trigger examples: "integrate web api for products table", "add api calls for orders", "connect my site to the blog posts table", "implement crud for categories", "set up web api client", "create…
otp-advisor
OTP patterns specialist - GenServer, Supervisor, Agent, Task, Registry, ETS. Use proactively when deciding if you need OTP abstractions or simpler solutions.
do-setup-assistant
Autonomous Durable Objects project scaffolder. Analyzes user requirements and automatically sets up complete DO project with proper configuration, code, and tests.