sast-fileupload

sast-fileupload is a skill for Claude Code, Codex from utkusen/sast-skills. It costs 92 tokens per session (7,267 once invoked), scanned A, original, MIT.

A security review for finding unsafe file-upload handling in a codebase. An unsafe upload can let an attacker store a malicious or executable file on a server, so the review looks for upload locations and ways validation might be bypassed.

In plain words
What is it for?
Use it to discover upload endpoints, check file-extension and related bypasses, and combine findings into one security report.
Why use it?
It helps identify upload paths that accept dangerous files or store them where they can be accessed and run. The review requires an existing architecture analysis before it starts.

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).

Needs its repository: it reads a path above its own folder, which exists only inside the repository. The line is 6. **Path traversal in filename**: If the original filename is used in the storage path without sanitization, `../../webroot/shell.php` can place files in unint.

Good fit Use it to discover upload endpoints, check file-extension and related bypasses, and combine findings into one security report.

Compare 6 skills from other repositories ↓
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

It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.

Clone the repo
git clone --depth 1 https://github.com/utkusen/sast-skills
agentmods
npx agentmods add skills/utkusen/sast-skills/sast-fileupload

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-fileupload

README.md
[![agentmods](https://agentmods.dev/badge/skills/utkusen/sast-skills/sast-fileupload/github.svg)](https://agentmods.dev/skills/utkusen/sast-skills/sast-fileupload)
Your own site
<a href="https://agentmods.dev/skills/utkusen/sast-skills/sast-fileupload"><img src="https://agentmods.dev/badge/skills/utkusen/sast-skills/sast-fileupload/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-fileupload

Your own site · 80×15
<a href="https://agentmods.dev/skills/utkusen/sast-skills/sast-fileupload"><img src="https://agentmods.dev/badge/skills/utkusen/sast-skills/sast-fileupload.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 92 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 7,267 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector pass 7 Sept 2026
How audits are shown
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.00092 $0.07267
Opus 5 $0.00046 $0.03633
Sonnet 5 $0.00018 $0.01453
Haiku 4.5 $0.00009 $0.00727

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

Security

Grade A, and why

sast-fileupload scanned grade A with 1 finding 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 11d 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.

Makes network callslowCapability

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

# VULNERABLE: content-type only check (trivially bypassed with curl -H)
sast-files/.agents/skills/sast-fileupload/SKILL.md · 612 lines

How it starts

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

Insecure File Upload Detection

You are performing a focused security assessment to find insecure file upload vulnerabilities in a codebase. This skill uses a three-phase approach with subagents: discovery (find all places where uploaded files are received and stored), batched verify (check bypass vectors in parallel batches of up to 3 upload sites each), and merge (consolidate batch reports into one results file).

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


What is an Insecure File Upload

Insecure file upload occurs when an application accepts files from users without properly validating or restricting what can be uploaded, allowing an attacker to upload executable or malicious files. The most critical outcome is Remote Code Execution (RCE): an attacker uploads a web shell (e.g., a .php file) and the server executes it when accessed via a direct URL.

The core pattern: a user-supplied file reaches a storage location without adequate extension validation, and the stored file is accessible or executable.

What Insecure File Upload IS

  • Accepting any file type with no extension or content check: file.save(upload_path) with no validation
  • Content-Type-only validation: checking Content-Type: image/png without verifying the actual extension or file content — trivially bypassed by setting the header manually
  • Extension blocklist with gaps: .php is blocked but .php3, .php4, .php5, .phtml, .phar, .shtml are not
  • Case-insensitive bypass: blocking .php but allowing .PHP, .Php, .pHp
  • Double extension bypass: shell.php.jpg — code extracts the last .jpg and considers it safe, but the server (Apache) serves it as PHP
  • Path traversal in filenames: ../../webroot/shell.php stored via an unsanitized filename
  • Incomplete filename sanitization: only stripping ../ but not encoded variants %2e%2e%2f
  • Serving uploaded files from a web-executable directory without disabling execution

Read the full file on GitHub · 612 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. 11d ago First seen · 612 lines · 92 tokens per session scan A eaebd66f3e49

Subscribe to this mod's changes

sast-fileupload is a skill published in the GitHub repository utkusen/sast-skills (1,307 stars, last pushed 5mo ago), licensed MIT. It adds 92 tokens to every session and 7,267 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). 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

secure-code-review

Performs a structured security code review against OWASP ASVS 4.0.3 verification requirements and CWE Top 25. Auto-invoked on pull request reviews, when code touching authentication, authorization, cryptography, or input handling is shared. Produces findings mapped to ASVS controls and CWE identifiers with severity…

UnitOneAI/SecuritySkills · 74 tokens

sast-config

Reviews and tunes SAST tool configurations against OWASP ASVS 4.0.3 and CWE Top 25. Auto-invoked when reviewing Semgrep rules, CodeQL queries, SAST CI integration, or false positive triage workflows. Produces a SAST maturity assessment covering rule authoring, severity tuning, custom rule development, and CI…

UnitOneAI/SecuritySkills · 78 tokens

eresus-manual-security-audit

Elite manual security code review skill for deep, adversarial vulnerability hunting and exploit-chain discovery. Trigger when the user asks to: "do a deep security audit", "manual code review", "find exploit chains", "hunt for logic bugs", "red-team this codebase", "do an offensive security review", "review this like…

EresusSecurity/appsec-skills · 145 tokens

eresus-sast-scanner

General-purpose Static Application Security Testing (SAST) skill for code vulnerability analysis. Trigger when the user asks to: "analyze code for vulnerabilities", "review code security", "find security bugs", "do a SAST scan", "check for [vulnerability type] in code", "audit source code", or requests a security code…

EresusSecurity/appsec-skills · 100 tokens

eresus-php-audit

Deep PHP-specific security audit skill covering injection, deserialization, file operations, auth bypass, POP chain discovery, and CMS-specific patterns. Trigger when auditing PHP code: "audit this PHP app", "find PHP security issues", "check Laravel/WordPress for vulnerabilities", "PHP SAST review", "check for PHP…

EresusSecurity/appsec-skills · 92 tokens

eresus-python-audit

Deep Python-specific security audit skill with 50+ vulnerability class coverage across 7 categories. Trigger when auditing Python code: "audit this Python app", "find Python security issues", "check Flask/Django for vulnerabilities", "Python SAST review", "check for pickle vulnerabilities", "review this FastAPI code".…

EresusSecurity/appsec-skills · 101 tokens