-
Notifications
You must be signed in to change notification settings - Fork 374
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cosmos-sdk vulnerability retrospective #587
Comments
Some more vulns. We will obviously need a much better method, contact people in the know and access better place than Google, Twitter or exploit-db like as I've been doing now. For instance https://github.com/tendermint/tendermint/security/advisories lists 4 vulns publicly, but there are undisclosed ones from the list above. Also, preventive fixes must not have been listed so we can be vulnerable even in the absence of a listed vuln. Anyway, I still consider this list helpful. DoS CVE-2019-25072"Due to support of Gzip compression in request bodies, as well as a lack of limiting response body sizes, a malicious server can cause a client to consume a significant amount of system resources, which may be used as a denial of service vector."
|
"Lavender" CVE-2020-5303"Tendermint before versions 0.33.3, 0.32.10, and 0.31.12 has a denial-of-service vulnerability. Tendermint does not limit the number of P2P connection requests. For each p2p connection, it allocates XXX bytes. Even though this memory is garbage collected once the connection is terminated (due to duplicate IP or reaching a maximum number of inbound peers), temporary memory spikes can lead to OOM (Out-Of-Memory) exceptions. Additionally, Tendermint does not reclaim activeID of a peer after it's removed in Mempool reactor. This does not happen all the time. It only happens when a connection fails (for any reason) before the Peer is created and added to all reactors. RemovePeer is therefore called before AddPeer, which leads to always growing memory (activeIDs map). The activeIDs map has a maximum size of 65535 and the node will panic if this map reaches the maximum. An attacker can create a lot of connection attempts (exploiting above denial of service), which ultimately will lead to the node panicking. These issues are patched in Tendermint 0.33.3 and 0.32.10."
|
"Syringa" CVE-2020-15091"TenderMint from version 0.33.0 and before version 0.33.6 allows block proposers to include signatures for the wrong block. This may happen naturally if you start a network, have it run for some time and restart it (without changing chainID). A malicious block proposer (even with a minimal amount of stake) can use this vulnerability to completely halt the network. This issue is fixed in Tendermint 0.33.6 which checks all the signatures are for the block with 2/3+ majority before creating a commit."
|
"Mulberry" CVE-2021-21271"Tendermint Core v0.34.0 introduced a new way of handling evidence of misbehavior. As part of this, we added a new Timestamp field to Evidence structs. This timestamp would be calculated using the same algorithm that is used when a block is created and proposed. (This algorithm relies on the timestamp of the last commit from this specific block.) In Tendermint Core v0.34.0-v0.34.2, the consensus reactor is responsible for forming DuplicateVoteEvidence whenever double signs are observed. However, the current block is still “in flight” when it is being formed by the consensus reactor. It hasn’t been finalized through network consensus yet. This means that different nodes in the network may observe different “last commits” when assigning a timestamp to DuplicateVoteEvidence. In turn, different nodes could form DuplicateVoteEvidence objects at the same height but with different timestamps. (...)"
|
Last one, at least for now. "Alderfly" GHSA-f3w5-v9xx-rp8p
Btw there are other repo to inspect for vuln advisories.
Some of them are used in |
Do you think this is heading in the right direction, @jaekwon, or do you have an alternative plan to address these points? |
I've been making some researchs these past 2 days on the topic of past vulnerabilities affecting cosmos libraries. I will start a list here (there must be more):
2022-10-07 500M USD Binance hack
iavl
module in the bridge between Binance Chain and BSC.cosmos/iavl
had started to depend oncosmos/ics23
(which doesn't use range proofs).2022-10-08 Dragonberry
ics23
implementation used by moderniavl
pkgs/iavl
is old and therefore its implementation does not depend uponcosmos/ics23
)2022-10-11 Elderflower
authz
module,Verichain public advisory VSA-2022-100
Verichain public advisory VSA-2022-101, CVE-2023-27575
ProofOpValue
bug in Tendermint, but applied togo/ethereum + tendermint
that is used by Binance.The text was updated successfully, but these errors were encountered: