Revolution Protocol - Timenov's results

A protocol to empower communities to raise funds, fairly distribute governance, and maximize their impact in the world.

General Information

Platform: Code4rena

Start Date: 13/12/2023

Pot Size: $36,500 USDC

Total HM: 18

Participants: 110

Period: 8 days

Judge: 0xTheC0der

Id: 311

League: ETH

Collective

Findings Distribution

Researcher Performance

Rank: 83/110

Findings: 1

Award: $21.24

🌟 Selected for report: 0

🚀 Solo Findings: 0

Findings Information

🌟 Selected for report: bart1e

Also found by: 00xSEV, 0xAsen, 0xDING99YA, Timenov, Udsen, _eperezok, bart1e, deth, fnanni, ke1caM, nmirchev8, peanuts, shaka

Labels

bug
2 (Med Risk)
partial-50
sufficient quality report
duplicate-93

Awards

21.242 USDC - $21.24

External Links

Lines of code

https://github.com/code-423n4/2023-12-revolutionprotocol/blob/d42cc62b873a1b2b44f57310f9d4bbfdd875e8d6/packages/revolution/src/AuctionHouse.sol#L152-L155

Vulnerability details

Impact

The AuctionHouse::settleCurrentAndCreateNewAuction function is used to first settle the current auction and create a new one and can be called by anyone. Lets take a look at _settleAuction(). Here we send the highest bidder the VerbToken, pay the creators(ETH and ERC20) and pay the owner. The max amount of creators an art can have is 100. If malicious user adds art with 100 creators(smart contracts with unbounded loops) that will consume all the gas when receiving ETH and his art wins, the following check in _createAuction: require(gasleft() >= MIN_TOKEN_MINT_GAS_THRESHOLD, "Insufficient gas for creating auction"); might fail. If somehow this doesn't fail, the user that called settleCurrentAndCreateNewAuction will end up paying a lot of gas, which may lead to less trust in the contract.

Proof of Concept

https://github.com/code-423n4/2023-12-revolutionprotocol/blob/d42cc62b873a1b2b44f57310f9d4bbfdd875e8d6/packages/revolution/src/AuctionHouse.sol#L394

https://github.com/code-423n4/2023-12-revolutionprotocol/blob/d42cc62b873a1b2b44f57310f9d4bbfdd875e8d6/packages/revolution/src/AuctionHouse.sol#L311

Tools Used

Manual Review

Use pull over push method when sending the rewards to the creators(ETH and ERC20).

Assessed type

DoS

#0 - c4-pre-sort

2023-12-22T17:25:50Z

raymondfam marked the issue as sufficient quality report

#1 - c4-pre-sort

2023-12-22T17:26:01Z

raymondfam marked the issue as duplicate of #93

#2 - c4-pre-sort

2023-12-24T14:35:59Z

raymondfam marked the issue as duplicate of #195

#3 - MarioPoneder

2024-01-06T13:24:00Z

#4 - c4-judge

2024-01-06T13:24:04Z

MarioPoneder marked the issue as partial-25

#5 - c4-judge

2024-01-11T18:25:54Z

MarioPoneder marked the issue as not a duplicate

#6 - c4-judge

2024-01-11T18:42:28Z

MarioPoneder marked the issue as duplicate of #93

#7 - c4-judge

2024-01-11T18:42:34Z

MarioPoneder marked the issue as partial-50

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