Skip to content
Open
Changes from 1 commit
Commits
Show all changes
88 commits
Select commit Hold shift + click to select a range
3e0cd1a
Add `CMT_HOME` (or remove it?) (backport #983) (#999)
mergify[bot] Jun 19, 2023
36ceb60
build(deps): Bump bufbuild/buf-setup-action from 1.21.0 to 1.22.0 (#1…
dependabot[bot] Jun 26, 2023
b60b805
docs: Added double quotes to /abci_query path param (#1015) (#1046)
mergify[bot] Jun 28, 2023
5806f5a
Clarifies that processProposal may be called for set of transactions …
mergify[bot] Jun 29, 2023
75f090d
v0.37.x: backport of new content on spec/p2p (#1004)
Jun 29, 2023
c7eed7e
build(deps): Bump bufbuild/buf-setup-action from 1.22.0 to 1.23.1 (#1…
dependabot[bot] Jul 4, 2023
c6d6c7c
build(deps): Bump docker/setup-buildx-action from 2.7.0 to 2.8.0 (#1062)
dependabot[bot] Jul 4, 2023
e94a9dd
build(deps): Bump docker/setup-buildx-action from 2.8.0 to 2.9.0 (#1104)
dependabot[bot] Jul 10, 2023
edffdc5
build(deps): Bump docker/setup-buildx-action from 2.9.0 to 2.9.1 (#1129)
dependabot[bot] Jul 17, 2023
75b81ab
build(deps): Bump bufbuild/buf-setup-action from 1.23.1 to 1.24.0 (#1…
dependabot[bot] Jul 17, 2023
f689a1c
p2p: Remove UPnP functionality (backport #1114) (#1126)
mergify[bot] Jul 17, 2023
20f3c57
crypto/sr25519: upgrade to go-schnorrkel@v1.0.0 (#1151)
Pitasi Jul 20, 2023
3f79321
build(deps): Bump bufbuild/buf-setup-action from 1.24.0 to 1.25.0 (#1…
dependabot[bot] Jul 24, 2023
7c001da
build(deps): Bump bufbuild/buf-setup-action from 1.25.0 to 1.25.1 (#1…
dependabot[bot] Aug 8, 2023
83ff5be
Close evidence.db OnStop (#1210) (#1225)
mergify[bot] Aug 10, 2023
88ce9ee
Log proposer's address when correctly accepting a proposal (backport …
mergify[bot] Aug 10, 2023
4560c11
build(deps): Bump bufbuild/buf-setup-action from 1.25.1 to 1.26.0 (#1…
dependabot[bot] Aug 14, 2023
80cfaed
build(deps): Bump bufbuild/buf-setup-action from 1.26.0 to 1.26.1 (#1…
dependabot[bot] Aug 21, 2023
cfc87ac
build(deps): Bump docker/setup-buildx-action from 2.9.1 to 2.10.0 (#1…
dependabot[bot] Sep 4, 2023
790d57e
feat: make handshake cancelable (backport #857) (#1013)
Sep 5, 2023
11f2dcc
build(deps): Bump docker/build-push-action from 4.1.1 to 4.2.1 (#1314)
dependabot[bot] Sep 11, 2023
11f6090
build(deps): Bump actions/checkout from 3 to 4 (#1315)
dependabot[bot] Sep 11, 2023
be0df2e
Fix typo: exent -> event (#1329)
p-offtermatt Sep 12, 2023
63ef8c8
build(deps): Bump docker/build-push-action from 4.2.1 to 5.0.0 (#1356)
dependabot[bot] Sep 20, 2023
bf8fd8c
build(deps): Bump docker/login-action from 2.2.0 to 3.0.0 (#1359)
dependabot[bot] Sep 20, 2023
24d3670
build(deps): Bump docker/setup-buildx-action from 2.10.0 to 3.0.0 (#1…
dependabot[bot] Sep 20, 2023
46df7b5
build(deps): Bump goreleaser/goreleaser-action from 4 to 5 (#1357)
dependabot[bot] Sep 20, 2023
8d18d1d
Update to string (#1385) (#1390)
mergify[bot] Sep 23, 2023
cd9d6d7
doc: improve documentation of BlockParams.MaxBytes (backport #1405) (…
mergify[bot] Sep 28, 2023
fb5f179
update language (backport #1263) (#1268)
mergify[bot] Oct 3, 2023
8b3bad5
build(deps): Bump styfle/cancel-workflow-action from 0.11.0 to 0.12.0…
dependabot[bot] Oct 10, 2023
fe17b83
build(deps): Bump bufbuild/buf-setup-action from 1.26.1 to 1.27.0 (#1…
dependabot[bot] Oct 10, 2023
05b2347
build(deps): Bump pillow from 9.3.0 to 10.0.1 in /scripts/qa/reportin…
mergify[bot] Oct 18, 2023
522f666
build(deps): Bump bufbuild/buf-setup-action from 1.27.0 to 1.27.1 (#1…
dependabot[bot] Oct 23, 2023
ca5cbfb
state: node bootstrap in v0.37.x (#1514)
jmalicevic Oct 26, 2023
60ee8ca
indexer-respect-height-params-on-query (backport #1529) (#1543)
mergify[bot] Oct 26, 2023
f565f92
build(deps): Bump bufbuild/buf-setup-action from 1.27.1 to 1.27.2 (#1…
dependabot[bot] Oct 30, 2023
36c3976
Updates grpc and net dependencies to avoid https://pkg.go.dev/vuln/GO…
lasarojc Nov 10, 2023
46951c9
mempool: Add metric size of pool in bytes (backport #1512) (#1567)
mergify[bot] Nov 12, 2023
5b1e711
build(deps): Bump bufbuild/buf-setup-action from 1.27.2 to 1.28.0 (#1…
dependabot[bot] Nov 13, 2023
47ffffa
Backports #1558 and #1584 to 0.38.x (#1592) (#1611)
lasarojc Nov 15, 2023
8b25893
This commit makes the test be the same as in main, that is, it ignore…
lasarojc Nov 16, 2023
9d26fa4
v0.37.x: Bump Go version to v1.21 (#1625)
thanethomson Nov 16, 2023
4c6e83d
Update SECURITY.md (backport #1626) (#1634)
mergify[bot] Nov 16, 2023
7a084a1
Comment that feature only applies to v0 mempool (#1631)
hvanz Nov 16, 2023
b640900
Release v0.37.3 (#1640)
thanethomson Nov 17, 2023
8c17e63
proto: Prepare for publishing v0.37.x protos to Buf registry (#1646)
thanethomson Nov 17, 2023
f474267
proto: Update README (backport #1648) (#1652)
mergify[bot] Nov 17, 2023
9e9064f
build(deps): Bump docker/build-push-action from 5.0.0 to 5.1.0 (#1656)
dependabot[bot] Nov 20, 2023
cf52e51
build(deps): Bump bufbuild/buf-setup-action from 1.28.0 to 1.28.1 (#1…
dependabot[bot] Nov 20, 2023
c89ad98
v0.37.x: Restore minimum Go version (#1669)
thanethomson Nov 20, 2023
ba3c8d8
mempool: add `nop` mempool (backport #1643) (#1681)
mergify[bot] Nov 23, 2023
656c1e4
docs: various small improvements (part 2) (backport #1683) (#1686)
mergify[bot] Nov 23, 2023
7dae514
Do not block indefinitely on the semaphore (backport #1654) (#1689)
mergify[bot] Nov 24, 2023
cce2e5d
Release v0.37.4 (#1699)
lasarojc Nov 27, 2023
936d5cc
types: validate Validator#Address field (backport #1715) (#1722)
mergify[bot] Dec 2, 2023
b9e4fe6
fix: increase abci socket message size limit to 2GB (backport #1730) …
mergify[bot] Dec 5, 2023
68cd34a
fix: Txs Validate (#1687) (#1752)
mergify[bot] Dec 5, 2023
bb0c411
Update CODE_OF_CONDUCT.md (#1708) (#1767)
mergify[bot] Dec 7, 2023
1b0372e
[e2e] Fixes prepareProposal not to return oversized set of transactio…
mergify[bot] Dec 7, 2023
cefbecd
Add test missing in #1687 (backport #1712) (#1760)
mergify[bot] Dec 8, 2023
4d6b504
build(deps): Bump actions/setup-go from 4 to 5 (#1792)
dependabot[bot] Dec 11, 2023
8b360e1
build(deps): Bump actions/stale from 8 to 9 (#1793)
dependabot[bot] Dec 11, 2023
43cfd0d
Introduce `countAllSignatures` in `VerifyCommitLight` & `VerifyCommit…
sergio-mena Dec 13, 2023
e2be737
Add changelog for #1749 (#1807) (#1820)
mergify[bot] Dec 13, 2023
8cba200
ci: fix failing golangci-lint action (#1833)
melekes Dec 18, 2023
5bbb06b
consensus: return last saved BeginBlock, not a empty one (#1782)
melekes Dec 18, 2023
4cb106a
build(deps): Bump actions/upload-artifact from 3 to 4 (#1840)
dependabot[bot] Dec 18, 2023
cde066f
Updates go crypto package to v0.17.0 (backport #1859) (#1864)
mergify[bot] Dec 19, 2023
b0127b5
Allow blocksync to not verify all signatures (backport #1858) (#1871)
mergify[bot] Dec 20, 2023
d0b139e
docs: Fix Discord links in README (backport #1874) (#1895)
mergify[bot] Jan 4, 2024
14aabc3
build(deps): Bump bufbuild/buf-setup-action from 1.28.1 to 1.29.0 (#2…
dependabot[bot] Jan 29, 2024
7b08918
build(deps): Bump slackapi/slack-github-action from 1.24.0 to 1.25.0 …
dependabot[bot] Jan 29, 2024
bd21a66
build(deps): Bump styfle/cancel-workflow-action from 0.12.0 to 0.12.1…
dependabot[bot] Jan 29, 2024
f379190
build(deps): Bump github.com/cloudflare/circl from 1.3.3 to 1.3.7 (ba…
mergify[bot] Feb 7, 2024
0401888
feat(consensus): additional sanity checks for the size of proposed bl…
mergify[bot] Feb 9, 2024
ad304d0
build(deps): Bump golangci/golangci-lint-action from 3 to 4 (#2297)
dependabot[bot] Feb 12, 2024
d954826
docs: images not rendering properly in docs (backport #2331) (#2339)
mergify[bot] Feb 14, 2024
1437879
ci: check metrics generation in CI checks (backport #2483) (#2486)
mergify[bot] Feb 29, 2024
0641e47
build(deps): Bump docker/setup-buildx-action from 3.0.0 to 3.1.0 (#2510)
dependabot[bot] Mar 4, 2024
a940dc8
build(deps): Bump docker/build-push-action from 5.1.0 to 5.2.0 (#2556)
dependabot[bot] Mar 11, 2024
3caf4a4
build(deps): Bump bufbuild/buf-setup-action from 1.29.0 to 1.30.0 (#2…
dependabot[bot] Mar 11, 2024
1bb0bd5
fix(docker-compose): fix subnet (backport #2383) (#2582)
mergify[bot] Mar 11, 2024
fd52ab7
feat(blocksync): set the max number of (concurrently) downloaded bloc…
melekes Mar 12, 2024
15d4d91
feat(blocksync): sort peers by download rate & multiple requests for …
mergify[bot] Mar 12, 2024
17419f9
fix(blocksync): use timer instead of time.After (backport #2584) (#2588)
mergify[bot] Mar 12, 2024
07493f4
Release v0.37.5 (#2591)
melekes Mar 13, 2024
0741a78
Merge tag 'v0.37.5' into HEAD
faddat Mar 20, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Update SECURITY.md (backport cometbft#1626) (cometbft#1634)
* Update SECURITY.md (cometbft#1626)

Signed-off-by: Thane Thomson <connect@thanethomson.com>
(cherry picked from commit 62a97f2)

# Conflicts:
#	SECURITY.md

* Resolve conflicts

Signed-off-by: Thane Thomson <connect@thanethomson.com>

---------

Signed-off-by: Thane Thomson <connect@thanethomson.com>
Co-authored-by: Thane Thomson <connect@thanethomson.com>
  • Loading branch information
mergify[bot] and thanethomson authored Nov 16, 2023
commit 4c6e83d4dec999a3cf4ee6fc60f74da12ec97933
225 changes: 25 additions & 200 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -1,208 +1,33 @@
# Security
# How to Report a Security Bug

## Reporting a Bug
If you believe you have found a security vulnerability in the Interchain Stack,
you can report it to our primary vulnerability disclosure channel, the [Cosmos
HackerOne Bug Bounty program][h1].

As part of our Coordinated Vulnerability Disclosure Policy (link will be added
once this policy is finalized for CometBFT), we operate a [bug
bounty][hackerone]. See the policy for more details on submissions and rewards,
and see "Example Vulnerabilities" (below) for examples of the kinds of bugs
we're most interested in.
If you prefer to report an issue via email, you may send a bug report to
<security@interchain.io> with the issue details, reproduction, impact, and other
information. Please submit only one unique email thread per vulnerability. Any
issues reported via email are ineligible for bounty rewards.

### Guidelines
Artifacts from an email report are saved at the time the email is triaged.
Please note: our team is not able to monitor dynamic content (e.g. a Google Docs
link that is edited after receipt) throughout the lifecycle of a report. If you
would like to share additional information or modify previous information,
please include it in an additional reply as an additional attachment.

We require that all researchers:
Please **DO NOT** file a public issue in this repository to report a security
vulnerability.

* Use the bug bounty to disclose all vulnerabilities, and avoid posting
vulnerability information in public places, including GitHub Issues, Discord
channels, and Telegram groups
* Make every effort to avoid privacy violations, degradation of user experience,
disruption to production systems (including but not limited to the Cosmos
Hub), and destruction of data
* Keep any information about vulnerabilities that you’ve discovered confidential
between yourself and the CometBFT engineering team until the issue has been
resolved and disclosed
* Avoid posting personally identifiable information, privately or publicly
## Coordinated Vulnerability Disclosure Policy and Safe Harbor

If you follow these guidelines when reporting an issue to us, we commit to:
For the most up-to-date version of the policies that govern vulnerability
disclosure, please consult the [HackerOne program page][h1-policy].

* Not pursue or support any legal action related to your research on this
vulnerability
* Work with you to understand, resolve and ultimately disclose the issue in a
timely fashion
The policy hosted on HackerOne is the official Coordinated Vulnerability
Disclosure policy and Safe Harbor for the Interchain Stack, and the teams and
infrastructure it supports, and it supersedes previous security policies that
have been used in the past by individual teams and projects with targets in
scope of the program.

## Disclosure Process

CometBFT uses the following disclosure process:

1. Once a security report is received, the CometBFT team works to verify the
issue and confirm its severity level using CVSS.
2. The CometBFT team collaborates with the Gaia team to determine the
vulnerability’s potential impact on the Cosmos Hub.
3. Patches are prepared for eligible releases of CometBFT in private
repositories. See “Supported Releases” below for more information on which
releases are considered eligible.
4. If it is determined that a CVE-ID is required, we request a CVE through a CVE
Numbering Authority.
5. We notify the community that a security release is coming, to give users time
to prepare their systems for the update. Notifications can include forum
posts, tweets, and emails to partners and validators.
6. 24 hours following this notification, the fixes are applied publicly and new
releases are issued.
7. Cosmos SDK and Gaia update their CometBFT dependencies to use these releases,
and then themselves issue new releases.
8. Once releases are available for CometBFT, Cosmos SDK and Gaia, we notify the
community, again, through the same channels as above. We also publish a
Security Advisory on GitHub and publish the CVE, as long as neither the
Security Advisory nor the CVE include any information on how to exploit these
vulnerabilities beyond what information is already available in the patch
itself.
9. Once the community is notified, we will pay out any relevant bug bounties to
submitters.
10. One week after the releases go out, we will publish a post with further
details on the vulnerability as well as our response to it.

This process can take some time. Every effort will be made to handle the bug in
as timely a manner as possible, however it's important that we follow the
process described above to ensure that disclosures are handled consistently and
to keep CometBFT and its downstream dependent projects--including but not
limited to Gaia and the Cosmos Hub--as secure as possible.

### Example Timeline

The following is an example timeline for the triage and response. The required
roles and team members are described in parentheses after each task; however,
multiple people can play each role and each person may play multiple roles.

#### 24+ Hours Before Release Time

1. Request CVE number (ADMIN)
2. Gather emails and other contact info for validators (COMMS LEAD)
3. Create patches in a private security repo, and ensure that PRs are open
targeting all relevant release branches (CometBFT ENG, CometBFT LEAD)
4. Test fixes on a testnet (CometBFT ENG, COSMOS SDK ENG)
5. Write “Security Advisory” for forum (CometBFT LEAD)

#### 24 Hours Before Release Time

1. Post “Security Advisory” pre-notification on forum (CometBFT LEAD)
2. Post Tweet linking to forum post (COMMS LEAD)
3. Announce security advisory/link to post in various other social channels
(Telegram, Discord) (COMMS LEAD)
4. Send emails to validators or other users (PARTNERSHIPS LEAD)

#### Release Time

1. Cut CometBFT releases for eligible versions (CometBFT ENG, CometBFT
LEAD)
2. Cut Cosmos SDK release for eligible versions (COSMOS ENG)
3. Cut Gaia release for eligible versions (GAIA ENG)
4. Post “Security releases” on forum (CometBFT LEAD)
5. Post new Tweet linking to forum post (COMMS LEAD)
6. Remind everyone via social channels (Telegram, Discord) that the release is
out (COMMS LEAD)
7. Send emails to validators or other users (COMMS LEAD)
8. Publish Security Advisory and CVE, if CVE has no sensitive information
(ADMIN)

#### After Release Time

1. Write forum post with exploit details (CometBFT LEAD)
2. Approve pay-out on HackerOne for submitter (ADMIN)

#### 7 Days After Release Time

1. Publish CVE if it has not yet been published (ADMIN)
2. Publish forum post with exploit details (CometBFT ENG, CometBFT LEAD)

## Supported Releases

The CometBFT team commits to releasing security patch releases for both
the latest minor release as well for the major/minor release that the Cosmos Hub
is running.

If you are running older versions of CometBFT, we encourage you to
upgrade at your earliest opportunity so that you can receive security patches
directly from the CometBFT repo. While you are welcome to backport security
patches to older versions for your own use, we will not publish or promote these
backports.

## Scope

The full scope of our bug bounty program is outlined on our
[Hacker One program page][hackerone]. Please also note that, in the interest of
the safety of our users and staff, a few things are explicitly excluded from
scope:

* Any third-party services
* Findings from physical testing, such as office access
* Findings derived from social engineering (e.g., phishing)

## Example Vulnerabilities

The following is a list of examples of the kinds of vulnerabilities that we’re
most interested in. It is not exhaustive: there are other kinds of issues we may
also be interested in!

### Specification

* Conceptual flaws
* Ambiguities, inconsistencies, or incorrect statements
* Mis-match between specification and implementation of any component

### Consensus

Assuming less than 1/3 of the voting power is Byzantine (malicious):

* Validation of blockchain data structures, including blocks, block parts,
votes, and so on
* Execution of blocks
* Validator set changes
* Proposer round robin
* Two nodes committing conflicting blocks for the same height (safety failure)
* A correct node signing conflicting votes
* A node halting (liveness failure)
* Syncing new and old nodes

Assuming more than 1/3 the voting power is Byzantine:

* Attacks that go unpunished (unhandled evidence)

### Networking

* Authenticated encryption (MITM, information leakage)
* Eclipse attacks
* Sybil attacks
* Long-range attacks
* Denial-of-Service

### RPC

* Write-access to anything besides sending transactions
* Denial-of-Service
* Leakage of secrets

### Denial-of-Service

Attacks may come through the P2P network or the RPC layer:

* Amplification attacks
* Resource abuse
* Deadlocks and race conditions

### Libraries

* Serialization
* Reading/Writing files and databases

### Cryptography

* Elliptic curves for validator signatures
* Hash algorithms and Merkle trees for block validation
* Authenticated encryption for P2P connections

### Light Client

* Core verification
* Bisection/sequential algorithms

[hackerone]: https://hackerone.com/cosmos
[h1]: https://hackerone.com/cosmos?type=team
[h1-policy]: https://hackerone.com/cosmos?type=team&view_policy=true