CtrlK
BlogDocsLog inGet started
Tessl Logo

sast-fileupload

Detect insecure file upload vulnerabilities in a codebase using a three-phase approach: discovery (find all upload sites), batched verify (check extension bypass and related issues in parallel subagents, 3 sites each), and merge (consolidate batch results). Requires sast/architecture.md (run sast-analysis first). Outputs findings to sast/fileupload-results.md. Use when asked to find file upload, unrestricted upload, or extension bypass bugs.

67

Quality

81%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

The canonical home for this skill is sast-fileupload in utkusen/sast-skills

SKILL.md
Quality
Evals
Security

Quality

Content

71%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A highly actionable, well-sequenced security skill with concrete examples and a clear three-phase workflow including a validation gate. Its main weaknesses are redundancy across the concept, examples, and Phase 2 sections, and a monolithic structure that would benefit from splitting the examples catalog into a reference file.

Suggestions

Extract the 7-language 'Vulnerable vs. Secure Examples' catalog into a separate reference file (e.g., references/examples.md) and link to it from the body, removing ~200 lines of inline content and improving progressive_disclosure.

De-duplicate the bypass vectors: define them once (in Phase 2) and reference that list from the 'What is IS/IS NOT' section rather than re-explaining them three times, to improve conciseness.

Add a brief error-recovery loop for Phase 2 (e.g., how to retry or re-split batches if a batch subagent fails or produces an unreadable batch file) to strengthen workflow_clarity's feedback-loop aspect.

DimensionReasoningScore

Conciseness

The body is mostly efficient but carries notable redundancy: the 8 bypass vectors are explained in the 'What is IS/IS NOT' section, restated across 7 language example blocks, and re-explained in detail inside the Phase 2 subagent prompt, all of which could be tightened.

3 / 5

Actionability

Guidance is fully executable: copy-paste-ready vulnerable/secure code examples, concrete subagent prompts with bracketed substitution points, exact output-file templates, and specific batching rules (3 sites per batch).

5 / 5

Workflow Clarity

The three phases are clearly sequenced with an explicit validation checkpoint (the zero-sites gate that skips Phase 2/3) and a closing checklist, but error-recovery feedback loops (e.g., what to do if a batch subagent fails) are largely absent.

4 / 5

Progressive Disclosure

Sections are well-organized with clear headers, but at ~600 lines everything is inlined into SKILL.md with no skill-internal reference files; the 7-language examples catalog and the large Phase 2 prompt are content that could live in separate one-level-deep reference files.

3 / 5

Total

15

/

20

Passed

Description

92%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong, well-structured description that clearly states capabilities, sequencing, prerequisites, outputs, and trigger conditions in third-person voice. Minor improvement possible by adding a few more natural synonyms (e.g., 'web shell', 'upload RCE').

DimensionReasoningScore

Specificity

The description enumerates concrete actions across all three phases: 'discovery (find all upload sites)', 'batched verify (check extension bypass and related issues in parallel subagents, 3 sites each)', and 'merge (consolidate batch results)', giving comprehensive coverage of capabilities.

5 / 5

Completeness

It explicitly answers both what it does ('Detect insecure file upload vulnerabilities... using a three-phase approach') and when to use it ('Use when asked to find file upload, unrestricted upload, or extension bypass bugs'), with concrete trigger phrases.

5 / 5

Trigger Term Quality

It includes natural phrases users would say ('file upload', 'unrestricted upload', 'extension bypass') in a 'Use when...' clause, but misses common synonyms like 'web shell upload' or 'RCE via upload'.

4 / 5

Distinctiveness Conflict Risk

The skill occupies a clear niche (insecure file upload detection) with a stated prerequisite ('Requires sast/architecture.md') that further disambiguates it from sibling SAST skills, minimizing conflict risk.

5 / 5

Total

19

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (612 lines); consider splitting into references/ and linking

Warning

Total

15

/

16

Passed

Repository
utkusen/sast-skills
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.