MCPInstall

vuln-research

Research a specific CVE or vulnerability disclosure end-to-end — what version is affected, is your code reachable, is there a public PoC, is there a patch, what's the exposure window, what's the mitigation if you can't patch immediately. Use when the user mentions 'CVE,' 'vulnerability research,' 'is this CVE relevant,' 'zero-day,' 'CISA KEV,' 'GitHub Security Advisory,' 'reachability analysis,' 'patch analysis,' 'exploit availability,' 'EPSS,' 'CVSS,' or 'should we drop everything and patch this.'

Installs
358
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/briiirussell/cybersecurity-skills --skill vuln-research
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads vuln-research automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Vuln Research — CVE Deep-Dive and Applicability Assessment

When a CVE drops, the question isn't "do we have this package?" — dependency-audit answers that. The questions are:

  • Is the vulnerable code path actually invoked in our usage?
  • Is there a public proof-of-concept making this easy to exploit?
  • Is there a patch? When? What's our exposure window if we can't deploy in 24 hours?
  • If we can't patch, what's the mitigation?
  • Is CISA tracking it as actively exploited?

This skill walks that workflow end-to-end. Pairs with dependency-audit (which surfaces the CVE in the first place) and finding-triage (which closes the disposition loop).

Authorization

Research vulnerabilities in code, dependencies and systems the user owns or is authorized to assess. Reading advisories, patches and public write-ups is fine. Reproduce a vulnerability only in an isolated environment the user controls, never against a live system you aren't authorized to test. Pre-disclosure details stay with the people entitled to them (see Boundaries).

Workflow

Step 1 — Pull the canonical sources

Start with the authoritative descriptions; everything downstream is summarized or sometimes wrong.

  • NVD record — https://nvd.nist.gov/vuln/detail/CVE-YYYY-NNNNN
  • Vendor advisory — search the vendor's security page; this is usually the most accurate description of which versions are affected and what the fix is
  • GitHub Security Advisory — https://github.com/advisories/GHSA-... (often more concise than NVD, sometimes has detail NVD lacks; check the parent project's security tab)
  • CISA Known Exploited Vulnerabilities catalog — https://www.cisa.gov/known-exploited-vulnerabilities-catalog. If the CVE is here, treat as actively exploited — patch within CISA's stated due date
  • EPSS score — https://www.first.org/epss/ — Exploit Prediction Scoring System; a 30-day probability of exploitation. Useful tiebreaker between high-CVSS-low-EPSS vs medium-CVSS-high-EPSS

Step 2 — Confirm affected versions

Vendor advisories sometimes hedge ("affects versions before X"); pin down the exact range.

  • Check the vendor's release notes and the commit history of the fix
  • For OSS projects: find the patch commit (usually mentioned in the advisory) and run git tag --contains <commit> to see which releases include the fix
  • For closed-source: the advisory is the only source — verify version comparisons carefully (semver isn't always observed)
  • For monorepos / re-publishers: confirm the same fix landed in any forks or distributions you depend on

Step 3 — Map to your environment

# Is the package installed at all?
npm ls <package>           # or yarn why <package>, pnpm why <package>
pip show <package>          # or pip list | grep <package>
bundle info <gem>
go list -m all | grep <package>

# What version exactly?
# Inspect lockfiles directly — the resolved version is what runs, not the range
grep -A1 '"<package>"' package-lock.json

# Where is it used?
# Direct dependency, transitive, dev-only?
npm ls <package> --omit=dev  # production-reachable?

If transitive, walk up the dependency tree until you find which direct dependency is pulling it in. That's where the override / pin / replacement lives.

Step 4 — Reachability analysis (the high-leverage step)

A CVE is only exploitable if you actually call the vulnerable code path. This is where dependency-audit's noise gets cut down to real risk.

Read the patch. The fix commit shows exactly which function / file / API was vulnerable. Then:

# Does your code call the vulnerable function directly?
grep -rn "vulnerableFunction\|VulnerableClass" . \
  --include="*.{js,ts,py,rb,go,java}" \
  --exclude-dir=node_modules

# Does the dependency call it internally even if you don't?
# Trickier — you have to read the parent's source. For an indirect call:
cd node_modules/<package>
grep -rn "vulnerableFunction" .

Common reachability outcomes:

  • Reachable, direct: You call the bad code. Highest priority — patch or workaround now
  • Reachable, indirect: Your dependency calls the bad code as part of normal use. Still high priority
  • Not reachable: The bad code is in a feature you don't use (different module, different entry point, different runtime). Lower priority; still recommend patching but won't break SLA
  • Unknown: Document as unknown and patch on the cautious side

Don't write "not reachable" without showing the work. Future-you will want to revisit when usage changes.

Step 5 — Check for public PoCs and active exploitation

  • GitHub: search for CVE-YYYY-NNNNN in code and repos — PoCs land here within days of disclosure
  • CISA KEV: if listed, it's actively exploited in the wild
  • Exploit-DB: https://www.exploit-db.com/ — confirmed exploits
  • Vendor's security mailing list: sometimes the most recent intel
  • GreyNoise: https://www.greynoise.io/ — internet-wide scanning telemetry; if attackers are mass-scanning for this, your exposure window is now
  • Twitter / Mastodon security circles — for breaking intel, but verify against canonical sources before acting

EPSS interpretation:

EPSS scoreMeaning
> 0.7High probability of exploitation in next 30 days — treat as urgent
0.1 – 0.7Meaningful exploitation likelihood — patch on regular cadence
< 0.1Low predicted exploitation — patch when convenient

EPSS is empirically tuned; it correlates better with actual exploitation than CVSS does.

Step 6 — Patch / mitigate / accept-risk

Patch (preferred):

  • If a patched version exists and you can deploy quickly — upgrade the package, run tests, deploy
  • For transitive deps without a direct patch, use overrides (npm) / resolutions (yarn) / pin to force the patched version

Mitigate (when you can't patch):

  • Disable the affected feature if your code doesn't need it
  • Add a request-level filter (WAF rule, proxy filter) that blocks the known-malicious input pattern — for exploitation that goes through HTTP, this is often deployable in hours
  • Network-segment the vulnerable service so it can't be reached from untrusted networks
  • Add detection (see siem-detection) so you'll see exploitation attempts even if mitigations fail

Accept risk (only when truly justified):

  • Code path is genuinely unreachable in your usage
  • Vulnerable component is in an internal-only service with no untrusted input
  • Compensating controls reduce exploitation likelihood / impact enough to justify
  • See the Accepted Risk disposition in owasp-audit's Report Format — three required fields (why, compensating controls, re-evaluation trigger). No exceptions.

Step 7 — Document and close the loop

After deciding:

  • Record the decision in your vuln-tracking system (Jira, Linear, Vanta, etc.)
  • For accept-risk: set a re-evaluation date and a calendar reminder
  • For patches: confirm via npm ls / lockfile that the patched version is actually deployed (rollouts are not the same as decisions)
  • For mitigations: write a runbook entry so the next person knows the mitigation exists and why

Common research traps

  • The advisory says "fixed in vX" but the package never released vX — happens with abandoned projects. Use overrides to a known-good fork, or replace the dependency
  • The vendor patched it silently — fix landed before the CVE; advisory is for the version before the silent fix. Verify the fix commit is in your version
  • The CVE applies to a sibling package you also have — same code, different name (forks, monorepo siblings). Search every package you have for the vulnerable function, not just the named one
  • The CVSS is high but the EPSS is low — usually means complex preconditions in the wild. Patch but don't panic
  • The CVSS is medium but the EPSS is high — usually means it's already being exploited in mass scans. Treat as urgent
  • The PoC needs auth that's hard to get — but your application makes that auth easy to get (signup is open). The "complexity" attacker rating doesn't account for your threat model

Output Format

# Vulnerability Assessment: CVE-YYYY-NNNNN
## Date: [date]
## Assessor: [name]

### Summary
- **Title:** [from advisory]
- **CVSS / EPSS:** [scores]
- **CISA KEV:** [yes / no, and due date if listed]
- **Affected versions:** [exact range]
- **Our version:** [version + how installed]

### Reachability
- **Direct call:** [yes / no — with evidence]
- **Indirect via dependency:** [yes / no — with evidence]
- **Verdict:** Reachable / Not reachable / Unknown

### Exploitation availability
- **Public PoC:** [yes / no — link]
- **Active exploitation:** [yes / no — source]

### Decision
- [ ] Patch (target deploy: [date])
- [ ] Mitigate (controls: [list]; re-evaluate: [date])
- [ ] Accept risk (why / compensating controls / re-eval trigger)

### Action items
| Item | Owner | Deadline |
|------|-------|----------|

### References
[Links to advisory, patch commit, PoC, EPSS, CISA, etc.]

Boundaries

  • Research vulnerabilities affecting code, dependencies, or systems the user has authorization for
  • Do not develop, weaponize, or distribute exploits — read existing PoCs only for the purpose of assessing applicability
  • For internal-only vulnerabilities or pre-disclosure intel, do not redistribute without authorization
  • If research surfaces an unreported vulnerability in someone else's code, follow responsible disclosure — do not publish, do not exploit
  • Refuse requests to use CVE research output to attack systems

References

  • NVD (National Vulnerability Database)
  • CISA Known Exploited Vulnerabilities Catalog
  • GitHub Security Advisories Database
  • EPSS (Exploit Prediction Scoring System) — FIRST.org
  • MITRE CVE — cve.mitre.org (now redirects to cve.org)
  • Exploit-DB
  • GreyNoise — internet scanning telemetry
  • "Patch Tuesday" / vendor-specific cadences for context on disclosure timing
  • Project Zero disclosure policy — the reference for responsible disclosure timelines

FAQ

What does the vuln-research skill do?

Research a specific CVE or vulnerability disclosure end-to-end — what version is affected, is your code reachable, is there a public PoC, is there a patch, what's the exposure window, what's the mitigation if you can't patch immediately. Use when the user mentions 'CVE,' 'vulnerability research,' 'is this CVE relevant,' 'zero-day,' 'CISA KEV,' 'GitHub Security Advisory,' 'reachability analysis,' 'patch analysis,' 'exploit availability,' 'EPSS,' 'CVSS,' or 'should we drop everything and patch this.'

How do I install vuln-research?

Run npx skills add https://github.com/briiirussell/cybersecurity-skills --skill vuln-research in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/vuln-research/ (personal) or .claude/skills/vuln-research/ (project).

Which AI agents can use vuln-research?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is vuln-research safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains vuln-research?

It is published by briiirussell in briiirussell/cybersecurity-skills. It has 358 recorded installs.

More from briiirussell/cybersecurity-skills

View all →

owasp-audit

briiirussell/cybersecurity-skills

Audit application source code against the OWASP Top 10 (2021) vulnerability categories — broken access control, cryptographic failures, injection, insecure design, security misconfiguration, vulnerable components, authentication failures, data integrity, logging failures, SSRF. Use when the user mentions 'OWASP,' 'OWASP Top 10,' 'security audit,' 'security review,' 'secure code review,' 'code security review,' 'vulnerability audit,' 'find vulnerabilities,' 'appsec review,' 'application security audit,' 'check for security issues,' 'broken access control,' 'IDOR,' 'SQL injection,' 'XSS,' 'SSRF,' or wants to check their codebase for common security weaknesses.

Security599 installs

web-pentest

briiirussell/cybersecurity-skills

Perform black-box / grey-box web application penetration testing on an authorized target — auth bypass, IDOR, session handling, business-logic flaws, parameter tampering, Burp Suite / OWASP ZAP workflows. Use when the user mentions 'web pentest,' 'web application penetration test,' 'pentesting,' 'bug bounty,' 'Burp Suite,' 'ZAP,' 'OWASP testing,' 'authentication testing,' 'session testing,' 'authorization testing,' 'business logic testing,' 'web vulnerability testing,' or has explicit authorization to test a live web application.

Security553 installs

api-audit

briiirussell/cybersecurity-skills

Audit REST, GraphQL, and RPC APIs against the OWASP API Security Top 10 (2023). Use when the user mentions 'API security,' 'API audit,' 'BOLA,' 'broken object level authorization,' 'BFLA,' 'function-level authorization,' 'mass assignment,' 'API rate limiting,' 'GraphQL security,' 'REST security,' 'API authentication,' 'API authorization,' 'excessive data exposure,' or needs to review API endpoints for security weaknesses.

Backend & APIs490 installs

dependency-audit

briiirussell/cybersecurity-skills

Audit project dependencies, frameworks, languages, and dev tools for known vulnerabilities, CVEs, and security anti-patterns. Use when the user mentions 'dependency audit,' 'npm audit,' 'CVE,' 'vulnerable packages,' 'supply chain security,' 'outdated dependencies,' 'known vulnerabilities,' 'security advisory,' 'package security,' 'framework vulnerability,' 'is this package safe,' or needs to check whether their stack has known security issues.

Security478 installs

secrets-audit

briiirussell/cybersecurity-skills

Find leaked secrets in source code, Git history, build artifacts, and infrastructure — and audit the secrets-management posture preventing future leaks. Use when the user mentions 'secrets audit,' 'secret scanning,' 'leaked credentials,' 'API key in code,' 'gitleaks,' 'trufflehog,' 'git history scan,' 'secrets management,' 'vault audit,' 'rotation policy,' 'AWS Secrets Manager,' 'HashiCorp Vault,' 'Doppler,' '1Password Secrets Automation,' 'sealed-secrets,' 'External Secrets Operator,' or needs to find or prevent credential exposure.

Security466 installs

threat-modeling

briiirussell/cybersecurity-skills

Run a structured threat-modeling session for a new feature, system, or architecture — STRIDE, attack trees, data flow diagrams, abuse cases. Use when the user mentions 'threat model,' 'threat modeling,' 'STRIDE,' 'attack tree,' 'abuse case,' 'data flow diagram,' 'DFD,' 'security architecture review,' 'design review,' 'pre-implementation security,' 'shift left,' 'what could go wrong,' or needs strategic security thinking before code is written.

Security421 installs

Popular productivity & automation skills

View category →

agent-browser

vercel-labs/agent-browser

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.

OfficialProductivity & Automation1.3M installs

lark-doc

open.feishu.cn

飞书云文档(Docx / Wiki)内容操作:读取、创建、编辑文档,插入或下载图片附件,以及操作思维笔记。用户提供文档 URL/token(包括 doubao.com 的 /docx/、/wiki/)时使用;按 URL 路径/token 而非域名路由;/page/ 是妙搭应用,非飞书云文档。文档内嵌资源按读取参考中的统一规则分流。独立评论操作走 lark-drive;随正文读取评论使用 docs +fetch。表格或 Base 内部数据操作不在本 skill。

lark-base

open.feishu.cn

飞书多维表格(Base)操作:建表、字段、记录、视图、统计、公式/lookup、表单、仪表盘、应用模式(BaseApp/AppMode 页面与组件)、Workspace 目录、workflow、角色权限、模板中心(多维表格模板分类/列表/搜索);遇到 Base/多维表格/bitable、BaseApp/AppMode、/base/ 或 /app/ 链接时使用。BaseApp 不走 lark-apps;文件导入/导出转 lark-drive,认证/授权转 lark-shared。

lark-drive

open.feishu.cn

飞书云空间(云盘/云存储):管理 Drive 文件和文件夹,包含上传/下载、创建文件夹、复制/移动/删除、查看元数据、查询权限设置、评论/权限/订阅、标题、版本、飞书文档密级标签(secure labels)和本地文件导入。用户需要整理云盘目录、处理云空间资源 URL/token、判断链接类型/真实 token/标题,或导入 Word/Markdown/Excel/CSV/PPTX/.base 为 docx/sheet/bitable/slides 时使用;doubao.com 云空间 URL/token 也按资源路径和 token 路由,不回退 WebFetch。不负责:文档内容编辑(走 lark-doc)、表格/Base 表内数据操作(走 lark-sheets/lark-base)、知识空间节点/成员管理(走 lark-wiki)、原生 Markdown 文件读写/patch/diff(走 lark-markdown)。

lark-shared

open.feishu.cn

Use for lark-cli setup/auth tasks: auth login/status/logout, user vs bot identity, business-domain permissions (--domain, including all/docs/drive), missing scopes, revoking authorization, or handling notice JSON.

lark-im

open.feishu.cn

飞书即时通讯:收发消息和管理群聊。发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件、管理表情回复、发送应用内/短信/电话加急、发送和处理交互卡片(Interactive Card)、监听卡片按钮回调(card.action.trigger)。当用户需要发消息、查看或搜索聊天记录、下载聊天中的文件、查看群成员、搜索群、创建群聊或话题群、管理标记数据、管理 Feed 置顶(添加/移除/查询置顶会话)、管理标签数据、处理卡片回调时使用。