Home

Awesome

Ark Improvement Proposals

Producing software inherently comes with risks. All software, especially new releases and large code re-writes, have a higher probability of producing bugs during production and initial release. To combat this, the ARK team has introduced modern testing methods, higher test coverage, a custom developed e2e testing framework and increased the availability for testing on our Development Network prior to the releases. Despite all of that, no one can catch every potential issue.

We are running our own development and security bounty program. Please check detailed instructions on how to report a security vulnerability at https://ark.io/sv/.

This repository series will serve as a public disclosure of any discovered and patched vulnerabilities within the ARK Blockchain Platform Product Landscape (Core, Desktop Wallet, Mobile Wallet, ARK Pay & Deployer).

The list of known and closed or still open security vulnerabilites can be found in the tables below. Each table consists of four fields, describing the basic information about the listed security vulnerabilities and a more detailed description is available by clicking on the link in the identifier field.

Core Security Vulnerabilities

IdentifierTitleStatusVersion
Core-SV-072Slow query stopped nodes when requesting blocks from specific generatorsClosedv2.7.13
Core-SV-071Reviver function in the transport codec could cause denial of serviceClosedv2.7.13
Core-SV-070Incoming connections were not banned when failing basic validation checksClosedv2.7.13
Core-SV-069Exceeding individual but not global rate limit evaded banClosedv2.7.13
Core-SV-068Automatic peer reconnection did not reattach socket event listenersClosedv2.7.13
Core-SV-067Schema violation requesting common blocks did not close the connectionClosedv2.7.13
Core-SV-066Blocks were accepted but not propagated if received out of slotClosedv2.7.13
Core-SV-065Requesting blocks at a very high height locked up PostgreSQLClosedv2.7.6
Core-SV-064Binary data payloads could stop forgingClosedv2.7.6
Core-SV-063Large payloads sent to internal endpoints prevented forgingClosedv2.7.6
Core-SV-062Outgoing connections were not destroyed after receiving unsupported WebSocket framesClosedv2.7.1
Core-SV-061Peer lists could exceed the maximum permitted payload sizeClosedv2.7.0
Core-SV-060Outgoing sockets were not properly rate limitedClosedv2.7.0
Core-SV-059Newly connected peers did not have an initial maximum payload limitClosedv2.6.57
Core-SV-058Insufficient transaction asset validationClosedv2.6.57
Core-SV-057HTTP header manipulation caused out of memory crashesClosedv2.6.54
Core-SV-056Prepending zeros in the hex representation of a signature would change its IDClosedv2.6.52
Core-SV-055Negative values were erroneously accepted in ECDSA signaturesClosedv2.6.49
Core-SV-054DER signature manipulation could fork the network, roll back and replay transactionsClosedv2.6.49
Core-SV-053Pool poisoning could stop delegates forging any transactionsClosedv2.6.49
Core-SV-052Port ping payload sizes were unchecked and could cause bandwidth flood attacksClosedv2.6.49
Core-SV-051Slow PostgreSQL query attack could have caused delegates to miss blocksClosedv2.6.49
Core-SV-050Consecutive big blocks could exceed the maximum payload limitClosedv2.6.49
Core-SV-049ECDSA-signed block and transaction signatures were malleableClosedv2.6.39
Core-SV-048Delayed completion of peer verification stopped nodes forgingClosedv2.6.39
Core-SV-047Block ID-based exceptions were vulnerable to preimage attacks and blockchain poisoningClosedv2.6.39
Core-SV-046Block schema violations could halt the blockchainClosedv2.6.39
Core-SV-045Induced slow block propagation forked the networkClosedv2.6.38
Core-SV-044Marshalled block payloads using the peer-to-peer transport codec were not sanitizedClosedv2.6.37
Core-SV-043Tree memory structure exceeded maximum call stack size when fetching unconfirmed transactions to forgeClosedv2.6.36
Core-SV-042Nonce comparison took too long to complete when fetching unconfirmed transactions to forgeClosedv2.6.34
Core-SV-041Overloading the public API could stop the transaction and block processing on a nodeClosedv2.6.30
Core-SV-040Long-lived HTTP requests via the P2P layer could crash the nodeClosedv2.6.27
Core-SV-039Pool wallet manager could lock up funds by not updating multipayment balancesClosedv2.6.21
Core-SV-038Plain HTTP connections to the p2p port could crash the node's operating systemClosedv2.6.11
Core-SV-037A malicious block containing thousands of transactions could take down a nodeClosedv2.5.36
Core-SV-036Opening thousands of sockets caused high CPU/memory usage and full server crashesClosedv2.5.36
Core-SV-035Broadcasting invalid WebSocket opcodes caused significant network degradation and missed blocksClosedv2.5.36
Core-SV-034Unhandled unemitted events could trigger high CPU spikes and propagation delaysClosedv2.5.36
Core-SV-033JSON payloads with too many key-value pairs were too CPU intensive to parseClosedv2.5.36
Core-SV-032Multiple disconnect JSON packets caused high CPU utilizationClosedv2.5.31
Core-SV-031Sending HyBi WebSocket headers with no data could stop nodes forgingClosedv2.5.30
Core-SV-030Ping control frame bombardment could prevent block propagationClosedv2.5.28
Core-SV-029Externally hitting internal P2P endpoints could stop a node handling requestsClosedv2.5.25
Core-SV-028Rate limiting was ineffective due to inappropriate disconnection methodsClosedv2.5.24
Core-SV-027Malformed messages on the P2P layer could hang up a node and stop delegates forgingClosedv2.5.24
Core-SV-026P2P endpoint request events were not sanitisedClosedv2.5.19
Core-SV-025Core plugin names were not length restricted so could cause DoS in peer listsClosedv2.5.19
Core-SV-024Peer lists could become too large and be manipulated to become a DDoS networkClosedv2.5.14
Core-SV-023Peer-to-peer postTransactions endpoint could be spammed to overwhelm nodesClosedv2.5.14
Core-SV-022Delegates can be forced to forge empty blocks and genuine transactions can be evicted from the poolClosedv2.4.14
Core-SV-021Unverified transactions in bad blocks can purge genuine transactions from the poolClosedv2.4.13
Core-SV-020Race condition can result in blocks containing already forged transactionsClosedv2.4
Core-SV-019Block header manipulation in quorum calculations prevents nodes forgingClosedv2.4
Core-SV-018Second Signature Transaction Pool ValidationClosedv2.4
Core-SV-017Second Signature Transaction Broadcast/Sign/OrderClosedv2.3
Core-SV-016Receiving a block containing non-valid transactions causes peers to rollbackClosedv2.3
Core-SV-015Delayed block propagation causes the next delegate to miss its blockClosedv2.3
Core-SV-014API endpoint open to possible DDOS attackClosedv2.2.2
Core-SV-013Transactions near the payload size limit can stop delegates forgingClosedv2.1.2
Core-SV-012Conflicting delegate registration transactionsClosedv2.1.0
Core-SV-011Malicious delegate zero(0) - ARK transaction spamClosedv2.0.18
Core-SV-010Malicious delegate can cause peers to fork and roll back simultaneouslyClosedv2.0.19
Core-SV-009Fake peers can be added by using non-quad-dotted notationClosedv2.0.19
Core-SV-008Forged blocks by anyone can cause the chain to stop/or start recoveringClosedv2.0.17
Core-SV-007Forging multiple blocks in a slot and rewards hijackingClosedv2.0.17
Core-SV-006Transaction replay attack with known 2nd signature passphrase / multisignatureClosedv2.6.0
Core-SV-005Double forging a blockOpen
Core-SV-004IP spoofingClosedv2.0.16
Core-SV-003Second signature transaction replayClosedv2.0.16
Core-SV-002Generating new Ark using multi signature transactionClosedv2.0.16
Core-SV-001Invalid block receivedClosedv2.0.16

Desktop Wallet Security Vulnerabilities

IdentifierTitleStatusVersion

Mobile Wallet Security Vulnerabilities

IdentifierTitleStatusVersion

Ark Pay Security Vulnerabilities

IdentifierTitleStatusVersion

Ark Deployer Security Vulnerabilities

IdentifierTitleStatusVersion