Art Gobblers contest - imare's results

Experimental Decentralized Art Factory By Justin Roiland and Paradigm.

General Information

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

Art Gobblers

Findings Distribution

Researcher Performance

Rank: 37/109

Findings: 1

Award: $470.36

🌟 Selected for report: 0

🚀 Solo Findings: 0

Findings Information

Labels

bug
duplicate
2 (Med Risk)

Awards

470.3582 USDC - $470.36

External Links

Lines of code

https://github.com/code-423n4/2022-09-artgobblers/blob/d2087c5a8a6a4f1b9784520e7fe75afa3a9cbdbe/src/ArtGobblers.sol#L562

Vulnerability details

The protocol is relaying on random seed passed to us from a random provider to provide reveling functionality of newly minted gobblers.

If such provider doesn't work anymore... maliciously or not ...the protocol cannot revel new gobblers and also upgrading such provider doesn't work anymore.

Effectively it breaks the protocol.

Impact

A working random provider after we request a seed (calling requestRandomSeed) will call us back with our new seed in the function acceptRandomSeed. This function can only be called by our designated random provider.

If we don't get called in this function then watingForSeed variable stays always on true.

If this happen we can no longer reveal any new gobblers because we get always reverted with SeedPending exception.

If we try to upgrade the random provider we get the same exception as above because this if check:

https://github.com/code-423n4/2022-09-artgobblers/blob/d2087c5a8a6a4f1b9784520e7fe75afa3a9cbdbe/src/ArtGobblers.sol#L562

if (gobblerRevealsData.waitingForSeed) revert SeedPending();

In the upgrade function upgradeRandProvider add a bool paramter to bypass the if that checks for the waiting seed.

Or just remove the problematic if altogether and just proceed with changing the address of the random provider directly.

AuditHub

A portfolio for auditors, a security profile for protocols, a hub for web3 security.

Built bymalatrax © 2024

Auditors

Browse

Contests

Browse

Get in touch

ContactTwitter