agentleFS
ajtazerajtazer/heckit/skills/cve-hunting/target-recon/SKILL.md

target-recon

Skill2 starsChanged 2 months agoMITView on GitHub

Target discovery methodology for finding high-quality npm/PyPI/GitHub packages to audit for vulnerabilities, with evaluation criteria and search strategies.

The file

We split this skill into the rules it gives an agent

5 rules. About 0 are common, 5 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈5

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Search for vulnerable patterns across many repos:

    line 65
  2. Distinctive:

    Check dependency counts -- packages depended on by many other packages have higher impact.

    line 72
  3. Distinctive:

    Check NVD: Search for existing CVEs

    line 96
  4. Distinctive:

    Check GitHub Advisories: Look at security tab

    line 97
  5. Distinctive:

    Write a brief for each approved target:

    line 107

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Target Recon -- Finding High-Quality Audit Targets

When to Use

Starting a new research cycle. Need fresh targets with high CVE potential but low existing researcher attention.

Target Sweet Spot

The ideal target is a package that:

  • Is widely used (>100K weekly downloads on npm)
  • Handles untrusted input (parsing, validation, file processing)
  • Is small enough to audit in a day (< 10K lines of code)
  • Has few existing CVEs (< 5)
  • Is actively maintained (last commit within 6 months)
  • Has 500-15K GitHub stars

Avoid

  • Mega-packages (lodash, axios, moment, express, django, rails) -- too many researchers
  • Full frameworks (Next.js, Nuxt, Laravel) -- too large, too audited
  • >20K stars AND >10 prior CVEs -- over-audited territory
  • Abandoned packages (no commits in 2+ years) -- CVE may not be assigned
  • Alpha/beta packages -- maintainer may not issue CVE

Search Strategies

npm Search

# Search by category
npm search xml parser
npm search csv parse
npm search template engine
npm search file upload
npm search schema validator

# Check weekly downloads on npmjs.com
# Look for packages with 100K-10M weekly downloads

GitHub Search

# Search repos by language and star count
gh search repos "xml parser" --language javascript --stars 500..15000
gh search repos "yaml" --language python --stars 500..10000
gh search repos "template engine" --language javascript --stars 500..15000
gh search repos "archive extract" --language go --stars 500..10000

grep.app (Cross-Repo Code Search)

Search for vulnerable patterns across many repos:

https://grep.app/search?q=new%20Function&regexp=false&filter[lang][0]=JavaScript
https://grep.app/search?q=eval%28&regexp=false&filter[lang][0]=JavaScript

Libraries.io

Check dependency counts -- packages depended on by many other packages have higher impact.

Category-Based Targeting

Highest Yield Categories

CategoryVulnerability ClassesExample Packages
Parsing (XML/CSV/YAML)Entity expansion, ReDoS, clobberingfast-xml-parser, csv-parse, js-yaml
Validation/SchemaCode injection, ReDoS, proto pollutionajv, joi, fastest-validator
Template EnginesSSTI, code injectionejs, nunjucks, handlebars, pug
Archive/CompressionZip Slip, decompression bomb, path traversaladm-zip, decompress, fflate
File HandlingPath traversal, symlink attacksexpress-fileupload, formidable
Deep Merge/CloneProto pollution, recursion DoSdeepmerge, rfdc, klona
Expression EvaluatorsSandbox escape, code injectionsimpleeval, expr-eval, filtrex
HTTP ClientsSSRF, header injection, auth leakgot, superagent, needle
SerializationClobbering, code injection, recursionflatted, superjson, msgpackr
URL/Path UtilitiesSSRF bypass, path traversalurl-parse, normalize-url

Evaluation Process

For each candidate:

  1. Check Registry: Is it already in REGISTRY.md?
  2. Check NVD: Search for existing CVEs
  3. Check GitHub Advisories: Look at security tab
  4. Read README: Does it warn about untrusted input?
  5. Check SECURITY.md: Does the project accept security reports?
  6. Read recent CHANGELOG: Any "security fix" entries? (incomplete patches are goldmines)
  7. Check HackerOne/bug bounty: Bonus, not required
  8. Estimate attack surface: What untrusted input does it process?
  9. Match to vuln classes: Which skills apply?

Brief Template

Write a brief for each approved target:

# Target Brief: [package-name]

- **GitHub**: [URL]
- **Stars**: [count]
- **Weekly Downloads**: [count]
- **Last Commit**: [date]
- **Language**: [JS/Python/Go/etc.]

## Attack Surface
- [What untrusted input does it process?]

## Existing CVEs
- [none / list with CVE IDs]

## Bug Bounty
- [yes/no + link]

## Top 3 Vectors
1. [Most likely vulnerability class + why]
2. [Second most likely]
3. [Third most likely]

## Why Promising
[1-2 sentences on why this target is worth investigating]

References

  • Parallel Scanning -- Batch evaluation methodology
  • Search Queries -- Pre-built search queries by category

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.