Request cves
bb-huge π€ , Personal bug bounty findings hub and bug bounty orchestration for multiple agents
npx -y skills add ShulkwiSEC/bb-huge --skill request-cvesAssembled 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):
cve-candidates.jsonβ auto-generated at pentest completion. Contains pre-filtered CVE-worthy findings with structured fields. This is the preferred input.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:
| CWE | Type |
|---|---|
| CWE-22 | Path Traversal |
| CWE-74 | Injection |
| CWE-77 | Command Injection |
| CWE-78 | OS Command Injection |
| CWE-79 | XSS |
| CWE-89 | SQL Injection |
| CWE-94 | Code Injection |
| CWE-200 | Information Exposure |
| CWE-259 | Hard-coded Password |
| CWE-269 | Improper Privilege Management |
| CWE-287 | Improper Authentication |
| CWE-290 | Authentication Bypass by Spoofing |
| CWE-306 | Missing Authentication for Critical Function |
| CWE-327 | Broken/Risky Cryptographic Algorithm |
| CWE-352 | CSRF |
| CWE-384 | Session Fixation |
| CWE-400 | Uncontrolled Resource Consumption (DoS) |
| CWE-434 | Unrestricted File Upload |
| CWE-502 | Deserialization of Untrusted Data |
| CWE-532 | Information Exposure Through Log Files |
| CWE-601 | Open Redirect |
| CWE-611 | XXE |
| CWE-613 | Insufficient Session Expiration |
| CWE-639 | IDOR |
| CWE-798 | Hard-coded Credentials |
| CWE-862 | Missing Authorization |
| CWE-863 | Incorrect Authorization |
| CWE-916 | Weak Password Hash |
| CWE-918 | SSRF |
| CWE-1236 | CSV Injection |
| CWE-1321 | Prototype Pollution |
| CWE-1333 | Inefficient 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
- Find input file: Check for
cve-candidates.jsonfirst, thenfindings.json. If$ARGUMENTSspecifies a path, use that. - Read the file and parse findings.
- Filter for CVE-worthy findings β apply ALL of these filters:
- Severity must be
medium,high, orcritical - Must NOT have severity
info - Must NOT have
status: "false_positive"(set by/analyze-cvewhen 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
archivedarray of findings.json (archived = already removed by/analyze-cve) - Must NOT appear in the
false_positivesarray 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)
- Severity must be
- 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:
| Field | Source |
|---|---|
vuln_type | Derive from title/description (e.g., "SSRF", "ReDoS", "DoS") |
cwe_id | Map from vuln_type using CWE reference table above |
cvss_vector | Compute from description, prerequisites, impact β use the reference above |
cvss_score | Compute from CVSS vector |
description | Clean version of finding description β factual, concise, suitable for a CVE record |
attack_vector | Specific endpoint/function where the vulnerability is triggered |
prerequisites | What access/conditions are needed (e.g., "authenticated admin user") |
poc | From finding evidence, reproduction command, or PoC file |
impact | Concrete impact statement |
fix_suggestion | From finding remediation if available |
fix_version | From remediation if available |
file_locations | Key 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
| From | When |
|---|---|
/pentester | After session(action="complete", options={...}) β pentester generates cve-candidates.json as a final step |
/remediate | After remediation β fixes are included in the disclosure report |
/analyze-cve | After CVE analysis β true positive verdicts feed directly into candidates |
/codebase | After 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