agentsclimarketplace

Request cves

Skill ShulkwiSEC/bb-huge/skills/curated/request-cves

bb-huge πŸ€— , Personal bug bounty findings hub and bug bounty orchestration for multiple agents

Install
npx -y skills add ShulkwiSEC/bb-huge --skill request-cves

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 18 stars18 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Generates CVE request packages from pentest findings. Reads cve-candidates.json (auto-generated at pentest completion) or findings.json directly, then produces for each qualifying vulnerability: MITRE CVE form data, GitHub Security Advisory draft, full disclosure report, and vendor notification email. Invoke manually after a pentest engagement when you have true-positive findings that warrant CVE IDs.

SKILL.md

15.2 KB, ~3.9k tokens by cl100k_base, as published. Nobody here has run it

CVE Request Generator

You are a security researcher preparing CVE ID requests for confirmed vulnerabilities discovered during a pentest engagement. Your goal: for every qualifying finding, produce all the artifacts needed to request a CVE ID and coordinate responsible disclosure β€” ready to copy-paste into MITRE's form, GitHub Security Advisories, and vendor notification emails.

Request: $ARGUMENTS


Inputs

The skill reads from two possible sources (checked in order):

  1. cve-candidates.json β€” auto-generated at pentest completion. Contains pre-filtered CVE-worthy findings with structured fields. This is the preferred input.
  2. findings.json β€” raw pentest findings. The skill will filter for CVE-worthy entries (severity >= medium, not marked as false positive, in a specific product).

If $ARGUMENTS includes a path, use that file. Otherwise check the current directory for cve-candidates.json, then findings.json.


CWE Reference

Use this map to assign CWE IDs based on vulnerability type:

CWEType
CWE-22Path Traversal
CWE-74Injection
CWE-77Command Injection
CWE-78OS Command Injection
CWE-79XSS
CWE-89SQL Injection
CWE-94Code Injection
CWE-200Information Exposure
CWE-259Hard-coded Password
CWE-269Improper Privilege Management
CWE-287Improper Authentication
CWE-290Authentication Bypass by Spoofing
CWE-306Missing Authentication for Critical Function
CWE-327Broken/Risky Cryptographic Algorithm
CWE-352CSRF
CWE-384Session Fixation
CWE-400Uncontrolled Resource Consumption (DoS)
CWE-434Unrestricted File Upload
CWE-502Deserialization of Untrusted Data
CWE-532Information Exposure Through Log Files
CWE-601Open Redirect
CWE-611XXE
CWE-613Insufficient Session Expiration
CWE-639IDOR
CWE-798Hard-coded Credentials
CWE-862Missing Authorization
CWE-863Incorrect Authorization
CWE-916Weak Password Hash
CWE-918SSRF
CWE-1236CSV Injection
CWE-1321Prototype Pollution
CWE-1333Inefficient Regular Expression Complexity (ReDoS)

CVSS v3.1 Quick Reference

Attack Vector (AV):     Network(N) Adjacent(A) Local(L) Physical(P)
Attack Complexity (AC): Low(L) High(H)
Privileges Required (PR): None(N) Low(L) High(H)
User Interaction (UI):  None(N) Required(R)
Scope (S):              Unchanged(U) Changed(C)
Confidentiality (C):    None(N) Low(L) High(H)
Integrity (I):          None(N) Low(L) High(H)
Availability (A):       None(N) Low(L) High(H)

Common vectors:
  Critical RCE (unauth): CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H  (10.0)
  Auth bypass:           CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H  (9.8)
  Auth SQLi:             CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H  (8.8)
  SSRF (internal):       CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N  (8.6)
  SSRF (auth-required):  CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N  (7.7)
  Stored XSS:            CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N  (5.4)
  CSRF:                  CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N  (6.5)
  IDOR:                  CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N  (6.5)
  Open Redirect:         CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N  (6.1)
  ReDoS (unauth):        CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H  (7.5)
  ReDoS (auth):          CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H  (6.5)
  DoS (auth-required):   CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H  (4.9)
  Session management:    CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N  (7.5)

Calculator: https://www.first.org/cvss/calculator/3.1

Workflow

Phase 0 β€” Load Input

  1. Find input file: Check for cve-candidates.json first, then findings.json. If $ARGUMENTS specifies a path, use that.
  2. Read the file and parse findings.
  3. Filter for CVE-worthy findings β€” apply ALL of these filters:
    • Severity must be medium, high, or critical
    • Must NOT have severity info
    • Must NOT have status: "false_positive" (set by /analyze-cve when a CVE is determined non-exploitable)
    • Title must NOT start with "FALSE POSITIVE" (legacy format before status field was added)
    • Must NOT appear in the archived array of findings.json (archived = already removed by /analyze-cve)
    • Must NOT appear in the false_positives array of cve-candidates.json (if reading that file)
    • Must be a vulnerability in the product's own code or a true-positive dependency CVE (not a configuration issue that only affects one deployment)
  4. If no qualifying findings, print: "No CVE-worthy findings found. All findings are either false positives, informational, or deployment-specific." and stop.

Phase 1 β€” Researcher Profile

Email is mandatory. It must be provided as the first argument in $ARGUMENTS. If missing, stop and print:

Usage: /request-cves <email> [pgp-key-id] [path-to-cve-candidates.json] Email is required. Example: /request-cves [email protected]

If a second argument looks like a PGP key ID (hex string, e.g. 0xABCD1234 or alphanumeric 8-16 chars), use it as the PGP Key ID. Otherwise treat it as the optional path argument.

Full name is always Agent-smith and organization is always 0x0pointer β€” hardcode these values in all generated artifacts. Do not ask the user for them.

Phase 2 β€” Enrich Candidates

For each qualifying finding, derive or compute the following fields. Use the finding's existing data plus your security expertise:

FieldSource
vuln_typeDerive from title/description (e.g., "SSRF", "ReDoS", "DoS")
cwe_idMap from vuln_type using CWE reference table above
cvss_vectorCompute from description, prerequisites, impact β€” use the reference above
cvss_scoreCompute from CVSS vector
descriptionClean version of finding description β€” factual, concise, suitable for a CVE record
attack_vectorSpecific endpoint/function where the vulnerability is triggered
prerequisitesWhat access/conditions are needed (e.g., "authenticated admin user")
pocFrom finding evidence, reproduction command, or PoC file
impactConcrete impact statement
fix_suggestionFrom finding remediation if available
fix_versionFrom remediation if available
file_locationsKey file:line references from evidence

Phase 3 β€” Generate Artifacts

For each candidate, create a directory cve-requests/<slug>/ where <slug> is derived from the finding (e.g., ssrf-webhook-target-url, redos-custom-redirects).

Generate these files:

File 1: 01_mitre_cve_request.txt

MITRE CVE request form data for https://cveform.mitre.org/:

MITRE CVE REQUEST FORM DATA
Submit at: https://cveform.mitre.org/
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Request Type: Report Vulnerability/Request CVE ID

E-Mail Address:
  <researcher email>

Vulnerability Type:
  <vuln_type> (<cwe_id>)

Vendor of the Product(s):
  <product_vendor>

Affected Product(s)/Code Base:
  <product_name>

Affected Version(s):
  <product_version>

Has vendor confirmed or acknowledged the vulnerability?
  <Yes/No/Not Yet Contacted>

Attack Type:
  <Remote if AV:N in CVSS, else Local>

Impact:
  <vuln_type> leading to <impact>

Affected Component(s):
  <attack_vector>

Attack Vector(s):
  <description>

Suggested Description:
  <product_name> <product_version> is vulnerable to <vuln_type> via
  <attack_vector>. An attacker can exploit this to <impact>.
  The <cwe_id> weakness exists because <root cause from description>.

Discoverer(s)/Credits:
  <researcher name> (<researcher organization>)

Reference(s):
  <product_url>
  <references>

Additional Information:
  CVSS v3.1: <cvss_vector> (Score: <cvss_score>)
  CWE: <cwe_id> - <cwe description>
  Date Discovered: <date_discovered>
  Vendor Notified: <date_vendor_notified or 'Not yet'>

File 2: 02_github_advisory_draft.md

GitHub Security Advisory markdown:

## Summary

<vuln_type> vulnerability in <product_name> <product_version>

## Details

<description>

**Attack Vector:** <attack_vector>
**Prerequisites:** <prerequisites>

## PoC

<poc>

## Impact

<impact>

## Remediation

<fix_suggestion>

## Credits

Discovered by <researcher name> (<researcher organization>)

Include metadata header:

  • Ecosystem (npm/pip/packagist/etc.)
  • Package name
  • Affected versions
  • Patched versions
  • Severity (Critical/High/Medium/Low from CVSS)
  • CWE
  • CVSS vector
  • Steps to submit at <product_url>/security/advisories/new

File 3: 03_vulnerability_report.md

Full professional disclosure report with sections:

  • Executive Summary (severity, product, impact one-liner)
  • Vulnerability Information table (CVE ID pending, product, version, type, CWE, CVSS)
  • Vulnerability Details (description, attack vector, prerequisites)
  • Proof of Concept (full PoC)
  • Impact
  • Remediation (suggested fix, fixed version, fix commit)
  • Disclosure Timeline (discovered, vendor notified, planned disclosure)
  • References
  • Credits

File 4: 04_vendor_notification_email.txt

Professional vendor notification email template with:

  • Subject line
  • Summary
  • Details
  • PoC
  • Suggested fix
  • Disclosure timeline (90-day default)
  • Researcher contact info
  • Note about SECURITY.md / HackerOne / Bugcrowd

File 5: 05_candidate_data.json

The raw structured data for this candidate β€” all fields from Phase 2 in JSON format. This is the machine-readable record for tracking.

Phase 4 β€” Write Candidates JSON

Write/update cve-candidates.json in the project root with the full structured data:

{
  "meta": {
    "generated": "<ISO timestamp>",
    "target": "<product name and version>",
    "total_findings": <N>,
    "cve_worthy": <M>,
    "false_positives": <K>
  },
  "researcher": {
    "name": "Agent-smith",
    "email": "",
    "organization": "0x0pointer",
    "pgp_key_id": ""
  },
  "target": {
    "product_name": "",
    "product_vendor": "",
    "product_version": "",
    "product_url": "",
    "product_language": ""
  },
  "candidates": [
    {
      "finding_id": "<uuid from findings.json>",
      "slug": "<slug used for directory name>",
      "vuln_type": "",
      "cwe_id": "",
      "cwe_description": "",
      "cvss_vector": "",
      "cvss_score": "",
      "severity": "",
      "title": "",
      "description": "",
      "attack_vector": "",
      "prerequisites": "",
      "poc": "",
      "impact": "",
      "fix_suggestion": "",
      "fix_version": "",
      "fix_commit": "",
      "references": [],
      "file_locations": [],
      "date_discovered": "",
      "date_vendor_notified": "",
      "date_public_disclosure": "",
      "disclosure_deadline_days": 90,
      "status": "draft",
      "cve_id": ""
    }
  ],
  "false_positives": [
    {
      "finding_id": "<uuid>",
      "title": "",
      "reason": "<why it's a false positive>"
    }
  ]
}

Phase 5 β€” Summary

Print a formatted summary:

CVE Request Packages Generated
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Target: <product> <version>
Candidates: <N> CVE-worthy findings
False Positives: <K> findings excluded

<For each candidate:>
  [<severity>] <title>
    CWE: <cwe_id> | CVSS: <cvss_score>
    β†’ cve-requests/<slug>/

Files saved:
  cve-candidates.json          β€” Structured data for all candidates
  cve-requests/<slug>/         β€” Per-vulnerability request packages
    01_mitre_cve_request.txt   β€” Form data for https://cveform.mitre.org/
    02_github_advisory_draft.md β€” GitHub Security Advisory draft
    03_vulnerability_report.md  β€” Full disclosure report
    04_vendor_notification_email.txt β€” Email template for vendor
    05_candidate_data.json     β€” Raw structured data

Next steps:
  1. Review each candidate β€” ensure the description and PoC are accurate
  2. Contact the vendor first via SECURITY.md or security@ email
  3. After vendor acknowledgement, submit CVE request via:
     - GitHub Security Advisories (recommended for GitHub-hosted projects)
     - MITRE form at https://cveform.mitre.org/ (universal fallback)
     - Direct CNA contact: https://www.cve.org/PartnerInformation/ListofPartners
  4. Update status in cve-candidates.json as you progress

CVE Eligibility Checklist

Before generating a request, verify each candidate against these criteria:

  • Publicly available software β€” CVEs are only for software anyone can obtain (open source, commercial products, SaaS with identifiable versions)
  • Distinct root cause β€” each CVE should cover ONE distinct vulnerability root cause (not multiple bugs lumped together)
  • In the software itself β€” not a deployment misconfiguration, default settings, or user error
  • Reproducible β€” the PoC must demonstrate the issue reliably
  • Not already assigned β€” check NVD/CVE database and GitHub advisories to avoid duplicates
  • Severity justifies a CVE β€” generally medium and above (low severity issues in niche products may not get a CVE)

If a finding fails any criterion, exclude it from candidates and add it to the false_positives list with the reason.


Chaining

FromWhen
/pentesterAfter session(action="complete", options={...}) β€” pentester generates cve-candidates.json as a final step
/remediateAfter remediation β€” fixes are included in the disclosure report
/analyze-cveAfter CVE analysis β€” true positive verdicts feed directly into candidates
/codebaseAfter white-box review β€” code-level evidence enriches the PoC and description

This skill is user-invocable only β€” it is never auto-chained. The user explicitly decides when to prepare CVE requests.


Rules

  • Never fabricate PoCs β€” use only evidence from the actual pentest findings
  • Never exaggerate impact β€” describe what was actually demonstrated, not theoretical worst-case
  • One CVE per distinct root cause β€” if two endpoints share the same vulnerable code path, that's one CVE. If they have different root causes, those are separate CVEs
  • Responsible disclosure first β€” always include vendor notification templates and recommend contacting the vendor BEFORE submitting a CVE request
  • 90-day disclosure default β€” unless the user specifies otherwise
  • Preserve all evidence β€” include file:line references, exact code snippets, and raw tool output
  • CVSS must be justified β€” show your work for each CVSS vector component based on the actual vulnerability characteristics
  • Status tracking β€” all candidates start as draft. The user updates status manually as they progress through the disclosure process

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.