The randMod() function of the smart contract implementation for MyCryptoChamp, an Ethereum game, generates a random value with publicly readable variables such as the current block information and a private variable, (which can be read with a getStorageAt call). Therefore, attackers can get powerful champs/items and get rewards.
The product uses a Pseudo-Random Number Generator (PRNG) in a security context, but the PRNG's algorithm is not cryptographically strong.
Link | Tags |
---|---|
https://etherscan.io/address/0xa44e464b13280340904ffef0a65b8a0033460430 | third party advisory |
https://medium.com/coinmonks/get-legendary-items-by-breaking-pnrg-of-mycyptochamp-an-ethereum-online-game-cve-2018-12855-6e6beb41b8df | third party advisory exploit |
https://etherscan.io/address/0x689FB61845488297dfE7586E5f7956475955d2Dc | third party advisory |