CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

dep-confusion

Dependency confusion — publish a higher-version internal package name on public registry (npm/PyPI/Maven/Crates) to coerce CI/CD into pulling attacker code.

Quality

74%

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/exploit/supplychain/dep-confusion/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

67%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.

The body is a highly actionable runbook with concrete, executable commands for every phase and a clear sequenced workflow with verification checkpoints and responsible-PoC guardrails. Main weaknesses are redundant, date-stamped bounty trivia that hurts token efficiency, npm-only code despite multi-registry claims, and a dangling upstream path reference.

Suggestions

Merge 'Programs that PAY' and 'Known exemplars' into one section and move the dated bounty figures into a clearly labeled reference, removing time-sensitive numbers from the main flow.

Add a verification step for the core precondition (confirm the target's CI actually resolves public registries for the internal scope) before publishing, and cover PyPI/Maven package builds or narrow the description to npm.

Fix the dangling 'skills/_corpus/payloads/Dependency Confusion/' cross-reference to point at a real file in the bundle or remove it.

DimensionReasoningScore

Conciseness

The body is dense with tables and executable code and assumes domain competence, but 'Programs that PAY' and 'Known exemplars' are redundant with each other and carry time-sensitive figures (2021 bounty amounts, '2022-2024') outside any deprecated/old-patterns section, which the guidelines penalize. Not 4 because these sections and the dated payout trivia need tightening; not 2 because most sections earn their tokens.

3 / 5

Actionability

Copy-paste-ready guidance throughout: a curl pipeline for bundle recon, npm/PyPI/Maven name-availability checks, a complete package.json and beacon.js, and the publish command. Not 5 because the description promises npm/PyPI/Maven/Crates coverage but build-and-publish code exists only for npm, and placeholders ($TARGET, YOUR_INTERACT_DOMAIN) require substitution.

4 / 5

Workflow Clarity

A clear numbered sequence (recon, verify, build, publish, observe, PoC framing, severity, defender) with checkpoints: step 2 is a go/no-go name-availability check, step 5 confirms execution via DNS callback, and the PoC section has explicit DO/DO-NOT guardrails plus cleanup. Not 5 because the core precondition — that the target's resolver searches both public and private registries — is asserted but never verified, a missing checkpoint for an outward-facing publish operation.

4 / 5

Progressive Disclosure

Well-sectioned single-file skill with clear headers and a one-level-deep external reference (Birsan's writeup); no nested references. Not 5 because the ~150-line body exceeds the simple-skill exception and sections like defender mitigations and bounty exemplars could be split out or trimmed, and 'Cross-references' points to 'skills/_corpus/payloads/Dependency Confusion/' which does not exist in this bundle.

4 / 5

Total

15

/

20

Passed

Description

70%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.

The description is specific and distinctive, naming the exact attack mechanism and target registries with natural trigger keywords. Its main weakness is the missing 'Use when...' trigger clause and absent synonyms like 'supply chain' or 'package squatting'.

Suggestions

Add an explicit 'Use when...' clause (e.g., 'Use when targeting supply chain attacks, package squatting, or private-registry package names in bug bounty scope') to lift completeness.

Add synonyms such as 'supply chain', 'package squatting', and 'private registry' to broaden natural trigger coverage.

Mention the full workflow scope (recon, verification, PoC framing, reporting) so the 'what' is comprehensive, not just the publish step.

DimensionReasoningScore

Specificity

Concrete actions are named ('publish a higher-version internal package name on public registry', 'coerce CI/CD into pulling attacker code') with specific ecosystems (npm/PyPI/Maven/Crates), but coverage is not comprehensive — recon, verification, and reporting steps are absent. Not 5 because only the publish action is described; not 3 because multiple registries and the mechanism (version coercion) are explicit.

4 / 5

Completeness

The 'what' is clearly stated (publish a higher-version internal package name to coerce CI/CD), but there is no 'Use when...' clause or equivalent explicit trigger guidance, capping completeness at 3 per the judging guidelines.

3 / 5

Trigger Term Quality

Natural terms a bug-bounty researcher would say are present: 'dependency confusion', 'internal package', 'public registry', 'npm/PyPI/Maven/Crates'. Not 5 because common synonyms like 'supply chain', 'package squatting', 'private registry', and 'version hijacking' are missing.

4 / 5

Distinctiveness Conflict Risk

'Dependency confusion' is a named attack technique with distinct registry-specific triggers; the niche is clear and conflict risk with other skills is minimal.

5 / 5

Total

16

/

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/exploit/supplychain/dep-confusion/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.