Platform: Code4rena
Start Date: 20/09/2022
Pot Size: $100,000 USDC
Total HM: 4
Participants: 109
Period: 7 days
Judge: GalloDaSballo
Id: 163
League: ETH
Rank: 38/109
Findings: 1
Award: $470.36
🌟 Selected for report: 0
🚀 Solo Findings: 0
🌟 Selected for report: zzykxx
Also found by: 8olidity, IllIllI, Lambda, berndartmueller, bytehat, devtooligan, hansfriese, imare, obront, philogy, shung, tonisives, zdhu, zkhorse
The updgradeRandProvider
function exists in case the chainlink randomness provider is phased out in the long term future. It is impossible to upgrade the randomness provider while the contract is still waiting for a seed. This is a reasonable thing to implement, but it could cause a lot of problems. For example, it is possible that the chainlink randomness gets phased out while the protocol is still waiting for a seed, especially because requesting and consuming random seeds are permissionless functions. An attacker can pick the worst possible time to request a random seed (right before chainlink becomes deprecated in this scenario), perhaps by even front-running admin calls to upgradeRandProvider
. This is a problem with the upgrading in general, perhaps the randomness provider after chainlink will have the same problem.
This is the line that could potentially brick the protocol: https://github.com/code-423n4/2022-09-artgobblers/blob/d2087c5a8a6a4f1b9784520e7fe75afa3a9cbdbe/src/ArtGobblers.sol#L562.
Manual
There are two trains of thought:
#0 - Shungy
2022-09-28T09:37:54Z
#1 - GalloDaSballo
2022-09-29T21:30:43Z