CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

prototype-pollution

Hunt JavaScript prototype pollution (CWE-1321) — the 2023-2026 meta-vulnerability that chains into RCE, auth bypass, and SSRF on most Node.js stacks.

Quality

79%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Critical

Do not install without reviewing

Fix and improve this skill with Tessl

tessl review fix ./packages/decepticon/decepticon/skills/standard/analyst/prototype-pollution/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

86%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 strong, dense exploitation playbook: executable sweep commands, a concrete PoC pair with a negative control, curated sink/gadget lists, and explicit CVSS and chain-promotion guidance. The only weaknesses are minor — brief conceptual framing Claude already knows, and validation signals living in a separate section rather than inlined as a workflow checkpoint.

DimensionReasoningScore

Conciseness

The body is a lean, list-driven playbook that assumes Claude's competence, with only minor removable explanation of already-known concepts: "plant a property on Object.prototype and it appears on every object in the runtime" and "Poisoning Object.prototype doesn't do anything by itself — you need a gadget". It is efficient with minor over-explanation (anchor 4), not anchor 5, since the two framing paragraphs partly restate what Claude already knows.

4 / 5

Actionability

Fully executable, copy-paste-ready guidance throughout: the jq/npm dependency sweep ("jq '.dependencies,.devDependencies | to_entries[] ...'"), a concrete two-request curl PoC with exact JSON payload ("{'__proto__': {'shell': "/bin/bash", ...}}"), a negative-control payload ("same payload with 'proto' (no leading underscores)"), and concrete CVSS vectors with scores. Specific examples cover the common cases, matching anchor 5.

5 / 5

Workflow Clarity

Section 3 gives a clear 4-step numbered audit sequence (find merge call sites → trace user control → check fix version → check copy-path pollution), and validation exists (section 6 success signals plus a negative control), but validation is not integrated into the workflow sequence as an explicit checkpoint step. This matches anchor 4 (clear sequence, most checkpoints present, minor validation gaps) rather than 5, which would inline an explicit validate-and-recover loop into the workflow.

4 / 5

Progressive Disclosure

The skill is a single self-contained file with no bundle directories (no references/, scripts/, or assets/ exist), and the ~100-line body is organized into eight clearly numbered, scannable sections with no nested references and nothing that clearly needs splitting into a separate file. Per the judging guideline, a skill with no need for external references scores 5 with well-organized sections.

5 / 5

Total

18

/

20

Passed

Description

65%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 distinctive, well-targeted description that names the niche precisely and lists the exploitation outcomes, but it is missing an explicit "Use when..." trigger clause and under-samples the concrete actions the skill performs. Trigger-term coverage is good though incomplete, with a few natural phrasings (e.g., "__proto__", "prototype chain") absent from the description itself.

Suggestions

Append an explicit trigger clause to the description, e.g.: "Use when auditing Node.js/JavaScript code for __proto__/constructor pollution, verifying a pollution sink in a deep-merge library, or chaining a pollution finding into RCE, auth bypass, or SSRF."

Enumerate the skill's concrete actions (sweep dependency versions for known sink libraries, trace merge call sites, build PoCs with the spawn/template gadgets, validate with a negative control) instead of the single generic verb "Hunt".

Add natural synonym phrasings users would actually type — "__proto__", "prototype chain", "pollute Object.prototype" — to the description text rather than only to the metadata when_to_use keyword string.

DimensionReasoningScore

Specificity

The description names the domain precisely ("Hunt JavaScript prototype pollution (CWE-1321)") and one concrete action ("Hunt"), with chain outcomes "chains into RCE, auth bypass, and SSRF", but does not list several distinct concrete actions like auditing dependencies, building PoCs, or validating findings. It sits at anchor 3 (domain plus 1-2 concrete actions, not comprehensive) rather than 4, which requires several listed actions.

3 / 5

Completeness

The "what" is clear ("Hunt JavaScript prototype pollution ... chains into RCE, auth bypass, and SSRF"), but the description contains no "Use when..." clause or equivalent explicit trigger guidance — only a weak implication via "on most Node.js stacks". Per the judging guideline, a missing 'Use when...' clause caps completeness at 3; note that a keyword-string "when_to_use" exists in metadata but the description field itself lacks explicit trigger guidance, so this is not anchor 4.

3 / 5

Trigger Term Quality

Includes natural terms users would say: "JavaScript prototype pollution", "RCE", "auth bypass", "SSRF", "Node.js", plus the specific "CWE-1321". Missing common variations a user might naturally say such as "__proto__", "prototype chain", or "polluted object" in the description itself, matching anchor 4 (good keyword coverage, a few natural terms missing) rather than 5.

4 / 5

Distinctiveness Conflict Risk

"prototype pollution (CWE-1321)" carves out a highly specific niche that no generic document- or code-manipulation skill would claim, with distinct triggers. This matches anchor 5 (clear niche, minimal conflict risk); there is no meaningful overlap with adjacent skills beyond the intended one.

5 / 5

Total

15

/

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.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

Total

15

/

16

Passed

Repository

PurpleAILAB/Decepticon

Path

packages/decepticon/decepticon/skills/standard/analyst/prototype-pollution/SKILL.md

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.