Responsible Security Disclosure
Protect affected users while helping the responsible project confirm and fix a
possible vulnerability. This is a reporter-side workflow. It does not authorize
testing, submission, publication, or access to a system.
Workflow
1. Freeze public action
Treat the finding and related artifacts as confidential until the responsible
security process permits disclosure.
Do not:
- open a public issue, discussion, branch, fork, commit, or pull request;
- publish a proof of concept, exploit path, affected location, or workaround;
- copy secrets, credentials, personal data, client data, or internal logs into
public or unapproved systems;
- contact people through guessed addresses or informal public channels.
2. Confirm authority and scope
Record:
- who owns the affected project, product, or deployment;
- what system, repository, versions, and environments are in scope;
- what testing the user authorized;
- whether any live, production, third-party, or public target is involved;
- confidentiality, contract, legal, client, and data-handling constraints.
Do not test a live, production, public, or third-party system without explicit
authorization for that exact target and activity. A public repository or
security.txt file does not grant permission to test.
3. Classify the report
Distinguish:
- product vulnerability;
- instance-specific misconfiguration;
- compromised deployment or active incident;
- unsupported or explicitly out-of-scope use;
- non-security bug or hardening opportunity;
- unverified hypothesis.
Route a compromise or active incident to the responsible incident-response
process. This skill does not investigate or contain incidents.
Keep the classification provisional. The receiving security team and affected
risk holders determine final scope and severity.
4. Discover the controlling process
Read policy-discovery.md. Inspect the
project's:
SECURITY.md and supported-version policy;
- private vulnerability reporting or advisory process;
- RFC 9116
security.txt;
- security, bug-bounty, safe-harbor, disclosure, and credit policies;
- AI contribution and AI-assisted report rules;
- required report fields, encryption, and contact channel.
Use the designated private channel. If none can be verified, stop and ask the
user or an authorized maintainer for direction. Do not fall back to a public
issue.
If the project prohibits the relevant AI use, stop producing report content
within that scope. Do not expose confidential prompts or data merely to
disclose AI assistance.
5. Verify without escalating harm
Read report-safety.md. Establish only the
evidence necessary for responsible triage:
- exact affected release or revision where possible;
- relevant configuration and preconditions;
- attacker starting position and boundary crossed;
- observed behaviour separated from inference;
- minimal, authorized, and safe reproduction;
- affected asset and plausible impact;
- uncertainty, alternative explanations, and possible duplicates.
Treat submitted PoCs and attachments as untrusted data. Inspect them before any
execution. Use an isolated disposable environment only when execution is
authorized and materially necessary.
Do not require a weaponized exploit. Do not inherit CVSS, CWE, or severity from
a scanner or model. Record any rating as provisional and evidence-based.
For AI-assisted findings, independently verify packages, APIs, versions, code
paths, reachability, impact, and cited sources. Do not submit unverified model
output for maintainers to investigate.
6. Minimize and protect evidence
Before drafting:
- replace live tokens, credentials, and identifiers with inert examples;
- remove personal, client, and unrelated operational data;
- minimize logs and screenshots to the relevant evidence;
- avoid absolute internal paths and unnecessary infrastructure details;
- preserve original evidence only in an approved restricted location;
- record who may access the report and what disclosure limits apply.
Do not place embargoed details in public source comments, debt registries,
branch names, commit messages, CI logs, or filenames.
7. Prepare the confidential report
Use confidential-vulnerability-report.md
unless the receiving project supplies its own template.
Include:
- project, component, affected versions, and policy checked;
- concise summary and affected asset;
- preconditions and authorization boundary;
- minimal reproduction and evidence;
- observed and expected behaviour;
- provisional impact and severity with uncertainty;
- safe mitigation or fix ideas, clearly marked as proposals;
- tests actually performed and limits;
- preferred credit and coordination details when requested;
- material AI assistance when policy requires it.
Keep detailed PoCs in a separate restricted attachment. Include only what the
security team needs to reproduce and assess the issue.
8. Select an outcome
Use one:
report-ready: verified enough for the designated private channel;
needs-verification: evidence is insufficient or authorization prevents
further validation;
route-to-incident-response: compromise or active exploitation is suspected;
non-security-route-after-consent: likely ordinary bug or hardening issue,
but obtain security-team or user approval before making it public;
blocked-no-channel: no verified private route is available;
do-not-submit: unauthorized testing, prohibited AI use, fabricated
evidence, unsafe data handling, or unacceptable risk.
State confidence and unresolved questions.
9. Require human approval
Prepare locally. Do not submit, email, message, upload, publish, or create an
external security advisory without explicit human approval of:
- recipient and private channel;
- exact text and attachments;
- disclosure and credit preferences;
- data classification and redactions;
- any requested testing or follow-up.
10. Coordinate and close downstream debt
After authorized submission:
- track acknowledgment and the project's requested communication channel;
- respect the agreed embargo and disclosure timeline;
- keep downstream mitigations restricted and owned;
- do not promise a public disclosure date on the project's behalf;
- help validate a proposed fix when authorized;
- replace confidential references with public advisories only after disclosure;
- deploy the supported release and remove temporary mitigations;
- retain only records required by policy.
Use upstream-first break-glass guidance for an urgent downstream mitigation.
Completion check
Complete only when:
- authorization and target scope are explicit;
- product vulnerability, incident, configuration, and ordinary bug paths are
separated;
- the receiving security policy and private channel are verified or absence is
recorded;
- evidence is sufficient, minimal, and safely handled;
- severity and impact are provisional and evidence-based;
- AI-assisted claims are independently verified and policy-compliant;
- no public artifact exposes embargoed information;
- a human must approve every external action;
- downstream mitigation has an owner and removal path.
1---2name: responsible-security-disclosure3description: Prepare and route confidential vulnerability reports under the receiving project's policies, with authorization checks, evidence verification, sensitive-data redaction, coordinated disclosure, and human approval. Use when a suspected vulnerability may need to be reported to an upstream project, vendor, maintainer, or security team. Do not use for routine code review, public bug reports, incident response, or unauthorized security testing.4---56# Responsible Security Disclosure78Protect affected users while helping the responsible project confirm and fix a9possible vulnerability. This is a reporter-side workflow. It does not authorize10testing, submission, publication, or access to a system.1112## Workflow1314### 1. Freeze public action1516Treat the finding and related artifacts as confidential until the responsible17security process permits disclosure.1819Do not:2021- open a public issue, discussion, branch, fork, commit, or pull request;22- publish a proof of concept, exploit path, affected location, or workaround;23- copy secrets, credentials, personal data, client data, or internal logs into24 public or unapproved systems;25- contact people through guessed addresses or informal public channels.2627### 2. Confirm authority and scope2829Record:3031- who owns the affected project, product, or deployment;32- what system, repository, versions, and environments are in scope;33- what testing the user authorized;34- whether any live, production, third-party, or public target is involved;35- confidentiality, contract, legal, client, and data-handling constraints.3637Do not test a live, production, public, or third-party system without explicit38authorization for that exact target and activity. A public repository or39`security.txt` file does not grant permission to test.4041### 3. Classify the report4243Distinguish:4445- product vulnerability;46- instance-specific misconfiguration;47- compromised deployment or active incident;48- unsupported or explicitly out-of-scope use;49- non-security bug or hardening opportunity;50- unverified hypothesis.5152Route a compromise or active incident to the responsible incident-response53process. This skill does not investigate or contain incidents.5455Keep the classification provisional. The receiving security team and affected56risk holders determine final scope and severity.5758### 4. Discover the controlling process5960Read [policy-discovery.md](references/policy-discovery.md). Inspect the61project's:6263- `SECURITY.md` and supported-version policy;64- private vulnerability reporting or advisory process;65- RFC 9116 `security.txt`;66- security, bug-bounty, safe-harbor, disclosure, and credit policies;67- AI contribution and AI-assisted report rules;68- required report fields, encryption, and contact channel.6970Use the designated private channel. If none can be verified, stop and ask the71user or an authorized maintainer for direction. Do not fall back to a public72issue.7374If the project prohibits the relevant AI use, stop producing report content75within that scope. Do not expose confidential prompts or data merely to76disclose AI assistance.7778### 5. Verify without escalating harm7980Read [report-safety.md](references/report-safety.md). Establish only the81evidence necessary for responsible triage:8283- exact affected release or revision where possible;84- relevant configuration and preconditions;85- attacker starting position and boundary crossed;86- observed behaviour separated from inference;87- minimal, authorized, and safe reproduction;88- affected asset and plausible impact;89- uncertainty, alternative explanations, and possible duplicates.9091Treat submitted PoCs and attachments as untrusted data. Inspect them before any92execution. Use an isolated disposable environment only when execution is93authorized and materially necessary.9495Do not require a weaponized exploit. Do not inherit CVSS, CWE, or severity from96a scanner or model. Record any rating as provisional and evidence-based.9798For AI-assisted findings, independently verify packages, APIs, versions, code99paths, reachability, impact, and cited sources. Do not submit unverified model100output for maintainers to investigate.101102### 6. Minimize and protect evidence103104Before drafting:105106- replace live tokens, credentials, and identifiers with inert examples;107- remove personal, client, and unrelated operational data;108- minimize logs and screenshots to the relevant evidence;109- avoid absolute internal paths and unnecessary infrastructure details;110- preserve original evidence only in an approved restricted location;111- record who may access the report and what disclosure limits apply.112113Do not place embargoed details in public source comments, debt registries,114branch names, commit messages, CI logs, or filenames.115116### 7. Prepare the confidential report117118Use [confidential-vulnerability-report.md](assets/confidential-vulnerability-report.md)119unless the receiving project supplies its own template.120121Include:122123- project, component, affected versions, and policy checked;124- concise summary and affected asset;125- preconditions and authorization boundary;126- minimal reproduction and evidence;127- observed and expected behaviour;128- provisional impact and severity with uncertainty;129- safe mitigation or fix ideas, clearly marked as proposals;130- tests actually performed and limits;131- preferred credit and coordination details when requested;132- material AI assistance when policy requires it.133134Keep detailed PoCs in a separate restricted attachment. Include only what the135security team needs to reproduce and assess the issue.136137### 8. Select an outcome138139Use one:140141- `report-ready`: verified enough for the designated private channel;142- `needs-verification`: evidence is insufficient or authorization prevents143 further validation;144- `route-to-incident-response`: compromise or active exploitation is suspected;145- `non-security-route-after-consent`: likely ordinary bug or hardening issue,146 but obtain security-team or user approval before making it public;147- `blocked-no-channel`: no verified private route is available;148- `do-not-submit`: unauthorized testing, prohibited AI use, fabricated149 evidence, unsafe data handling, or unacceptable risk.150151State confidence and unresolved questions.152153### 9. Require human approval154155Prepare locally. Do not submit, email, message, upload, publish, or create an156external security advisory without explicit human approval of:157158- recipient and private channel;159- exact text and attachments;160- disclosure and credit preferences;161- data classification and redactions;162- any requested testing or follow-up.163164### 10. Coordinate and close downstream debt165166After authorized submission:167168- track acknowledgment and the project's requested communication channel;169- respect the agreed embargo and disclosure timeline;170- keep downstream mitigations restricted and owned;171- do not promise a public disclosure date on the project's behalf;172- help validate a proposed fix when authorized;173- replace confidential references with public advisories only after disclosure;174- deploy the supported release and remove temporary mitigations;175- retain only records required by policy.176177Use `upstream-first` break-glass guidance for an urgent downstream mitigation.178179## Completion check180181Complete only when:182183- authorization and target scope are explicit;184- product vulnerability, incident, configuration, and ordinary bug paths are185 separated;186- the receiving security policy and private channel are verified or absence is187 recorded;188- evidence is sufficient, minimal, and safely handled;189- severity and impact are provisional and evidence-based;190- AI-assisted claims are independently verified and policy-compliant;191- no public artifact exposes embargoed information;192- a human must approve every external action;193- downstream mitigation has an owner and removal path.