Individual skill
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.
packages/decepticon/decepticon/skills/standard/exploit/supplychain/dep-confusion/SKILL.md
Source commit df879550544d36b6b1e69062f05adae28537adf2
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- No
- Repository scan complete
- No
- Skill scan complete
- No
- Observed behavior
- Not checked yet
- Last checked
- Nov 8, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.
Repository context
- Repository stars (not skill ratings)
- 6,567
- Repository last updated
- Nov 7, 2026
- License
- Apache-2.0
Observed agent integration: No specific integration evidence. Standard SKILL.md installation does not imply verified compatibility.
- agent Repository topic
- ai Repository topic
- cybersecurity Repository topic
- hacking Repository topic
- langchain Repository topic
- langgraph Repository topic
- llm Repository topic
- generative-ai Repository topic
- pentesting Repository topic
- pentest Repository topic
- devops Derived category
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Browse files
Read excerpt
# Dependency Confusion (Alex Birsan 2021)
When an org uses **internal** private packages (e.g. `@target-internal/utils`)
AND a build system that searches BOTH public + private registries, an
attacker can publish a public package w/ the **same name at higher version**.
Default resolvers pick highest version → public package runs in CI.
## 1. Reconnaissance — find internal package names
| Source | Pattern |
|---|---|
| `package.json` in public repo | `"@target/foo"` scoped packages |
| `package.json` exfiltrated from web (`/static/`) | dependency lists |
| Webpack bundles | leaked `package.json` strings |