Skip to content

Conversation

@aljo242
Copy link
Contributor

@aljo242 aljo242 commented Oct 17, 2025

POLICY.md: Removed prior bug bounty, severity handling, and Patch Day process text; replaced with a single pointer directing readers to SECURITY.md for details.

SECURITY.md:

  1. Replaced brief policy blurb with a full “Cosmos Security Vulnerability Disclosure and Bug Bounty Policy” introduction.
  2. Added private reporting requirements: prefer HackerOne; fallback email security@cosmoslabs.io; email submissions not bounty-eligible; no public disclosure until authorized.
  3. Added bug bounty overview: in-scope components (SDK, CometBFT, IBC, Cosmos EVM, other critical infra); scope/severity/reward details governed by the HackerOne page and Safe Harbor terms.
  4. Added severity classification table (Critical, High, Medium, Low) and reference to resources/CLASSIFICATION_MATRIX.md.
  5. Added silent patch model description, aligned with Ethereum/Bitcoin/Zcash practices; critical issues handled case-by-case with possible private fix distribution or emergency upgrades.
  6. Added fix distribution expectations: patches/minor releases, security implications may be omitted from notes, private notifications to operators possible.
  7. Added disclosure timelines: Low/Medium ~4 weeks after public fix; High after affected version EOL (~1 year typical); Critical case-by-case (at least after EOL).
  8. Added post-disclosure transparency: advisories with impact, affected versions, remediation, and reporter attribution; long-term public availability.
  9. Added references to external security advisory/disclosure resources.

SECURITY.md Outdated
Comment on lines 46 to 50
**Scope:** Core Cosmos Stack components, such as: Cosmos SDK, CometBFT consensus engine, IBC, Cosmos EVM and
other critical infrastructure

For full scope, severity definitions, and reward ranges, see the Cosmos
page on HackerOne.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should probably just list out the exact scope here (instead of leaving it at 'other critical infra'), we also should link to the page on hacker one here.

SECURITY.md Outdated
Comment on lines 66 to 69
| **Critical** | Bugs posing an existential or network-wide threat (chain halts, consensus failures, inflation, or theft). | Token creation beyond fixed supply, permanent fork bug. |
| **High** | Major disruption to many nodes or users, often remotely exploitable. | Remote crash or chain halt vulnerability. |
| **Medium** | Moderate impact or harder to exploit; may require specific configurations. | Slow block propagation, limited DoS. |
| **Low** | Minor impact or impractical exploitation. | Benign input causing small performance issue. |

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

need to expand on these further and be more specific in the definitions between critical and high. this is probably what security researchers care most about, and here critical and high sound very similar, feels like you could argue any high is a critical based on these defs.

SECURITY.md Outdated
Comment on lines 109 to 117
### Advance Notice

Before disclosing, Cosmos issues a **pre-announcement**, e.g.:

> "Upcoming security disclosure: vulnerabilities fixed in Cosmos SDK
> vX.Y.Z will be publicly disclosed on \[Date\]. Please ensure you have
> upgraded."
This alerts operators while maintaining security during the embargo.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i dont totally get this part, so we have silent releases, but also will announce that patch x.y.z has a security vulnerability in it that we are fixing and will announce what that is in a year? im assuming for a lot of these the security vuln will be the only thing in the patch if we are upgrading the previous release family, so then based on the commit message + this announcement it feels like it defeats the purpose of it being silent.

SECURITY.md Outdated
Comment on lines 78 to 79
Cosmos adopts a **silent patch** approach. Vulnerabilities are fixed
quietly before disclosure.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should mention that this is not for critical vulnerabilities. And also mention what we do in case of critical vulnerabilities

SECURITY.md Outdated

Cosmos adopts a **silent patch** approach. Vulnerabilities are fixed
quietly before disclosure.
This mirrors practices from projects like **Ethereum's Geth**, **Bitcoin
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might be good to include a link here to their policy. For ex, https://geth.ethereum.org/docs/developers/geth-developer/disclosures

SECURITY.md Outdated
Comment on lines 83 to 84
Announcing vulnerabilities too early can endanger unpatched nodes.
Silent fixes allow time for safe upgrades before attackers become aware.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

True, I'm curious if we can stick to this if we see a chain get attacked (and let's say get halted). So this doc should mention what we do in case we know that attackers have already become aware before a maintenance release. My guess would be that we treat is as critical, although it is not critical.

SECURITY.md Outdated
Comment on lines 95 to 96
### Disclosure Timeline

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Duplicate

Suggested change
### Disclosure Timeline

SECURITY.md Outdated
|------------------|----------------------------------------------------------------------------|-----------------------------------------------------------------------------------------|
| **Low / Medium** | ~4 weeks after public fix release | Publish full advisory with impact and fix details. |
| **High** | After the affected version reaches **End-of-Life (EOL)** (~1 year typical) | Delayed high-severity policy ensures attackers are not aware of exploits. |
| **Critical** | **Ad-hoc** (case-by-case) | Disclose only when safe; may delay or omit full details to prevent future exploitation. |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For this, we would need to patch everyone asap, right? So once that is done, I don't see why we can't wait until the EOL.

Copy link
Member

@vladjdk vladjdk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

aligned

Copy link

@zchn zchn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great to me. Only minor thoughts.

SECURITY.md Outdated

| **Level** | **Description** | **Examples** |
|--------------|-------------------------------------------------------------------------------------|---------------------------------------------------------|
| **Critical** | Network-wide or existential threats, including fund loss, inflation, or theft. | Unlimited token minting, permanent consensus failure. |
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd only include permanent & irrecoverable loss of fund in critical, i.e. Description: "Permanent and irrecoverable loss of fund", Example: "Direct fund loss, unauthorized and unlimited token minting, irreversible theft of fund."

Any DoS issues including chain halt, temporary freeze of funds and recoverable fund loss should be a high only.


## Vulnerability Severity Levels

Reported vulnerabilities are assigned a severity classification that
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the motivation of having both this table and the read world examples at https://github.com/cosmos/security/blob/1e9c361558608b4ac5468ffdfff89abd273249be/resources/CLASSIFICATION_MATRIX.md#real-world-examples? Feels like they serve the same purpose so we should probably merge them?


------------------------------------------------------------------------

## Silent Patch and Disclosure Process
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I really like that we are not reinventing the wheel and reusing Eth/Btc/Zcash process as much as possible!

@aljo242 aljo242 merged commit 3333bcc into main Dec 12, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

6 participants