typosquat-check
Skill9 starsChanged 7 days agoApache-2.0View on GitHub
Typosquat and malicious-package detection across installed dependencies (or a single prospective addition) — cross-checks AI-malware family intelligence, package-name similarity to known popular packages, low maintainer-health signals. Use when auditing a freshly-onboarded repo, vetting a single suspicious package, gating CI on supply-chain risk, or investigating an incident.
In this repository18 other files it gives its agents.
- AGENTS.mdAGENTS.md
- container-scanSkill
- dashboardSkill
- dependency-choiceSkill
- dep-resolveSkill
- detection-rulesSkill
- eol-checkSkill
- exploit-testSkill
- fixSkill
- iac-scanSkill
- license-checkSkill
- repo-impactSkill
- sast-scanSkill
- sbom-generateSkill
- secret-scanSkill
- secure-code-writeSkill
- verify-fixSkill
- vex-publishSkill
The file
Files
Vulnetix Typosquat Check Skill
Use when
- Onboarding: scan all installed deps for typosquat/malware matches.
- Vetting a single package that looks suspicious (
react-utill,lodash-utility, etc.). - CI gate: block any installed dep flagged BLOCK.
- Post-incident: cross-reference your installed deps against newly-discovered malware families.
- Investigating a single package after a vendor advisory mentions name-similarity attacks.
Don't use for
- CVE-based vulnerability scanning — use
vulnetix scan --sca. - Generic package risk before adding — use
dependency-choice. - Detecting compromised packages via runtime behaviour — Pix is static-only.
Conventions
Follows skills/_lib/contract.md. In short: use the vulnetix_* MCP tools when the agent has them and the CLI otherwise — both shape their own output, so there is no jq step any more. Independent calls go out as concurrent Bash tool calls in one message. One trailing suggestion, not a playbook. See the contract for surface selection, output style and memory writes.
Step 1: Decide mode
- Single-package:
$ARGUMENTSis a name → check just that. --installed: read lockfile (perderived.primary_package_manager), check every direct dep.
Step 2: Run gated scan + AI-malware lookup
vulnetix scan --block-malware -o json
vulnetix vdb ai-malware list -o json
vulnetix vdb packages search "$PACKAGE" --ecosystem "$ECO" -o json # for similarity hitsThe packages search response includes typosquat-similarity scores against well-known package names.
Step 3: Render
| Package | Version | Verdict | Reason |
| react-utill | 1.0.0 | BLOCK | typosquat of react-util (similarity 0.92), 0 stars, 14d old |Verdicts: ALLOW / WARN / BLOCK.
Step 4: Memory + .gitignore note
Append event: typosquat-check with verdicts to memory. If any BLOCK, surface a strong suggestion to remove the package and check git history (git log -p -- <package-manifest-path>).
Edge cases & gotchas
- Similarity scoring is heuristic (Levenshtein + popularity weighting). Borderline names need human review.
--installedmode reads the lockfile perderived.primary_package_manager— make sure the lockfile is up-to-date.vdb ai-malware list --package <name>returns matches across ecosystems; filter by--ecosystemfor accuracy.- BLOCK verdict is rare and high-signal; treat as urgent. Most flagged packages are WARN (borderline name + low maintainer signal).
- Removing a flagged package is destructive — review
git log -p -- <manifest>BEFORE deletion to understand what code depends on it. - False positives: legitimate packages with similar names to popular ones (e.g. typescript-eslint vs typescript) can score high — manual triage needed.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

