본문으로 건너뛰기
cccskills
무료GitHub에 공개

request-cves

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.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

연동 도구GitHub
설치 방법 보기

포함된 파일(1)

  • SKILL.md15.2 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

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 researcher@example.com

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

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Exploit pervasive logical flaws in Multi-Factor Authentication (MFA/2FA) implementations to bypass the secondary authentication challenge entirely. Techniques include response manipulation, referal spoofing, token reuse, and predictable backup codes.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

ShulkwiSEC/bb-huge232026년 7월 11일 업데이트

401/403 bypass playbook. Use when encountering access-denied responses on admin panels, API endpoints, or restricted paths. Covers path manipulation, HTTP method tampering, header injection, protocol downgrade, and automated bypass tools.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

ShulkwiSEC/bb-huge232026년 7월 11일 업데이트

Complete PortSwigger deep-dive with exact payloads for every lab variant including zero-day techniques

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

ShulkwiSEC/bb-huge232026년 7월 11일 업데이트

Active Directory ACL abuse playbook. Use when exploiting misconfigured AD permissions including GenericAll, WriteDACL, DCSync rights, shadow credentials, LAPS reading, GPO abuse, and BloodHound-guided attack paths.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

ShulkwiSEC/bb-huge232026년 7월 11일 업데이트

Execute AS-REP Roasting to extract and crack the NTLM hashes of Active Directory user accounts that have the "Do not require Kerberos preauthentication" flag explicitly enabled. This attack generates a recoverable Ticket Granting Ticket (TGT) without requiring the attacker to authenticate first.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

ShulkwiSEC/bb-huge232026년 7월 11일 업데이트

AD Certificate Services attack playbook. Use when targeting misconfigured AD CS for privilege escalation via ESC1-ESC13 template abuse, NTLM relay to enrollment, CA officer abuse, and certificate-based persistence.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

ShulkwiSEC/bb-huge232026년 7월 11일 업데이트

ShulkwiSEC의 스킬 모두 보기

이 스킬의 문제 신고