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

cve:brainstorm

Plan responsible CVE disclosure, guide silent fixes, and BLOCK all public GitHub actions until CVE is properly handled

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

rossoctl/rossoctl스타 303(GitHub 303 + cccskills 0)
연동 도구GitHub

실행 점수 미검증

설치 방법 보기

포함된 파일(1)

  • SKILL.md8.3 KB

SKILL.md(원문)

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

CVE Brainstorm — Responsible Disclosure & Public Output Gate

When to Use

  • After cve:scan detects a confirmed HIGH/CRITICAL CVE
  • When you need to plan responsible disclosure for a vulnerability
  • When deciding whether to fix silently (dependency bump) or report formally
  • Automatically invoked by cve:scan when findings are detected

When a CVE is detected by cve:scan, this skill guides responsible disclosure and blocks all public output until the vulnerability is properly handled.

CRITICAL SAFETY RULE

+===========================================================+
|                                                             |
|   CVE DISCLOSURE HOLD IS ACTIVE                             |
|                                                             |
|   ALL public GitHub actions are BLOCKED:                    |
|   - gh pr create / gh pr comment                            |
|   - gh issue create / gh issue comment                      |
|   - Commit messages containing CVE IDs                      |
|   - Any text containing vulnerability descriptions          |
|                                                             |
|   Accidental CVE disclosure:                                |
|   - Enables exploitation before patches exist               |
|   - Violates responsible disclosure agreements              |
|   - Causes legal and reputational harm                      |
|                                                             |
+===========================================================+

This hold is NOT optional. It cannot be skipped or deferred.

Workflow

flowchart TD
    START(["CVE found by cve:scan"]) --> HOLD["ACTIVATE CVE HOLD"]:::block
    HOLD --> P1["Phase 1: Find Disclosure Channel"]:::cve
    P1 --> P2["Phase 2: Assess Fix Options"]:::cve
    P2 --> CANFIX{"Silent fix possible?"}

    CANFIX -->|Yes| SILENTFIX["Apply silent fix"]:::fix
    CANFIX -->|No| REPORT["Guide disclosure to proper channel"]:::cve

    SILENTFIX --> VERIFY["Verify fix (no CVE refs in output)"]:::fix
    VERIFY --> RESOLVE

    REPORT --> WAITREPORT["User confirms: reported to channel"]:::cve
    WAITREPORT --> RESOLVE

    RESOLVE["LIFT CVE HOLD"]:::green
    RESOLVE --> DONE([Return to calling workflow])

    classDef block fill:#D32F2F,stroke:#333,color:white
    classDef cve fill:#FF5722,stroke:#333,color:white
    classDef fix fill:#FF9800,stroke:#333,color:white
    classDef green fill:#4CAF50,stroke:#333,color:white

Follow this diagram as the workflow.

Phase 1: Disclosure Channel Discovery

For each affected dependency with a confirmed CVE:

Step 1: Search for security policy

WebSearch: "<project-name> SECURITY.md responsible disclosure vulnerability report"

Step 2: Check GitHub repo directly

# If the dependency is on GitHub
gh api repos/<owner>/<repo>/contents/SECURITY.md --jq '.content' | base64 -d 2>/dev/null

Step 3: Present disclosure channel to user

For each CVE, present:

Disclosure Channel for <package>
================================
Project: <name> (<repo-url>)
Security policy: <SECURITY.md URL or "not found">
Report via: <email / form / GitHub Security Advisory>
Embargo: <timeline if documented, or "not specified">

If no security policy found:

No formal security policy found for <package>.
Options:
  1. Open a GitHub Security Advisory (private by default)
  2. Email the maintainer directly (check package metadata)
  3. Report to the ecosystem registry (PyPI, npm, etc.)

Phase 2: Fix Assessment

Interactive brainstorm with user, one question at a time:

Question 1: Fixed version available?

The CVE affects <package> <version>.

A fixed version exists: <fixed-version>
  -> Can we bump to <fixed-version> in this repo?

OR

No fixed version is available yet.
  -> We need to report and wait, or apply a workaround.

Question 2: Can the fix be applied silently?

If a fix is available:

Silent fix options (commit messages that DON'T reference the CVE):

  1. Dependency bump:
     Commit: "Bump <package> to <version>"
     (No CVE reference - just a version update)

  2. Configuration change:
     Commit: "Update <config> for <package> compatibility"
     (Describes the config change, not the vulnerability)

  3. Code workaround:
     Commit: "Refactor <component> to use <alternative>"
     (Describes the behavior change, not the security issue)

Which approach fits this situation?

Question 3: Does the fix change behavior?

Will bumping <package> from <old> to <new> change any behavior?

  If yes:
  - Tests must verify the new behavior
  - Test descriptions must NOT reference the CVE
  - Use neutral language: "test compatibility with <package> <version>"

  If no:
  - Straightforward bump, minimal risk

Phase 3: Public Output Blocking (HARD GATE)

While the CVE hold is active, REFUSE the following actions:

Blocked Actions

ActionHow to Block
gh pr createDo not run. Say: "CVE hold active. Cannot create PR until resolved."
gh pr commentDo not run. Say: "CVE hold active. Cannot comment on PR until resolved."
gh issue createDo not run. Say: "CVE hold active. Cannot create issue until resolved."
gh issue commentDo not run. Say: "CVE hold active. Cannot comment on issue until resolved."
Commit with CVE IDScan commit message for CVE-\d{4}-\d+ pattern. If found, refuse and suggest neutral wording.
Write CVE to git-tracked fileBefore any Write/Edit to a git-tracked file, scan content for CVE references. Block if found.

Allowed Actions

ActionWhy Allowed
Local code changesNot public
git commit with clean messageNo CVE exposure if message is neutral
git push of clean commitsPushing a dependency bump is fine
Write to /tmp/Not public, not git-tracked
Local test runsNot public
WebSearch for disclosure infoResearch, not publication

CVE Reference Detection

Before ANY public output, scan for these patterns:

  • CVE-\d{4}-\d+ (CVE IDs)
  • Words: "vulnerability", "exploit", "security flaw", "attack vector"
  • Specific vulnerability class names when combined with the affected package name

If detected, STOP and rewrite using neutral language.

Phase 4: Resolution

The CVE hold is resolved when the user confirms ONE of:

Resolution 1: Reported to proper channel

User: "CVE reported to <channel>"

Response:
  CVE hold lifted.
  - Reported to: <channel>
  - Embargo: <timeline if known>

  You may now proceed with public GitHub actions.
  REMINDER: Do NOT reference the CVE in public until the embargo lifts.

Resolution 2: Fixed silently

User: "CVE fixed, bumped to <version>"

Response:
  CVE hold lifted.
  - Fix: bumped <package> to <version>
  - Commit message: <the neutral message used>

  Verify: commit message and PR description contain no CVE references.
  You may now proceed.

Resolution 3: False positive

User: "False positive, not a real CVE"

Response:
  CVE hold lifted.
  - Reason: false positive
  - Evidence: <user's explanation>

  You may now proceed.

Resolution 4: User override

User: "CVE hold resolved" (explicit override)

Response:
  WARNING: Lifting CVE hold by user override.
  - No disclosure confirmed
  - No fix confirmed

  Ensure you have handled this CVE through appropriate channels
  before publishing any related work.

  CVE hold lifted.

Anti-Patterns

Don'tDo Instead
Include CVE ID in commit messageUse neutral wording: "Bump X to Y"
Describe vulnerability in PRDescribe the change: "Update dependency"
Post CVE details in issue commentReport through security channel first
Skip the hold because "it's just a bump"Even bumps need clean messages
Mention "security fix" in publicSay "compatibility update" or "dependency update"
Link to NVD/advisory in PRKeep links in /tmp/ notes only

Related Skills

  • cve:scan - Detection engine that triggers this skill
  • tdd:ci - Calling workflow (Phase 3.5 gate)
  • git:commit - Commit conventions (CVE ID check added)

리뷰

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

댓글

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

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

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

0 / 1,000자

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

같은 저장소의 스킬

auth

무료

Authentication and authorization patterns for Rossoctl services

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

rossoctl/rossoctl3032026년 10월 25일 업데이트

Create confidential OAuth2 clients in Keycloak for server-to-service authentication

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

rossoctl/rossoctl3032026년 10월 25일 업데이트

Configure MLflow with mlflow-oidc-auth plugin for Keycloak OIDC authentication

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

rossoctl/rossoctl3032026년 10월 25일 업데이트

Configure OpenTelemetry Collector with OAuth2 authentication for trace export

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

rossoctl/rossoctl3032026년 10월 25일 업데이트

ci

무료

CI pipeline monitoring, status checks, and PR validation workflows

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

rossoctl/rossoctl3032026년 10월 25일 업데이트

Monitor running CI jobs, wait for completion, create tasks for results

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

rossoctl/rossoctl3032026년 10월 25일 업데이트

rossoctl의 스킬 모두 보기

이 스킬의 문제 신고