Revolution Protocol - PNS'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: 105/110

Findings: 1

Award: $1.34

🌟 Selected for report: 0

🚀 Solo Findings: 0

Awards

1.337 USDC - $1.34

Labels

bug
2 (Med Risk)
downgraded by judge
grade-c
partial-50
sufficient quality report
duplicate-515

External Links

Lines of code

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

Vulnerability details

Impact

When an auction starts, it has established rules that all participants (creators, bidders, owner) agree to. However, the owner of the auction may change it immediately without informing the people involved, including the person with the highest bid. The bid cannot be withdrawn, so the division of auction profits will take place according to new rules to which the bidder did not agree. This is a breach of the contract agreed to by all participants when they entered the auction. This creates a lack of trust in the system and at the same time may deprive the creator of his earnings.

The auction conditions should remain unchanged throughout the duration of the auction.

Proof of Concept

When the auction starts, only startTime and endTime are saved in its parameters, the rest of the parameters responsible for the division of profits are calculated dynamically when it ends.

File: AuctionHouse.sol
317:             auction = Auction({
318:                 verbId: verbId,
319:                 amount: 0,
320:                 startTime: startTime,
321:                 endTime: endTime,
322:                 bidder: payable(0),
323:                 settled: false
324:             });

How profits from the auction are distributed is determined by the parameters creatorRateBps, minCreatorRateBps, entropyRateBps. While the value of creatorRateBps cannot be less than minCreatorRateBps and minCreatorRateBps cannot be decreased, there are no conditions for changing entropyRateBps, which may deprive the creator of direct profits in ETH.

Tools Used

manual review

The structure containing auction data should be expanded with additional parameters containing profit sharing settings. In this way, there will be a permanent record that the auction participants agree to at the beginning and which will remain unchanged throughout the duration of the auction. Changes introduced by the owner will be effective from the next auction. If a change in parameters is required, it can be done by canceling the ongoing auction, refunding the funds and starting a new auction.

Assessed type

Governance

#0 - c4-pre-sort

2023-12-22T19:44:03Z

raymondfam marked the issue as sufficient quality report

#1 - c4-pre-sort

2023-12-22T19:44:10Z

raymondfam marked the issue as duplicate of #55

#2 - c4-pre-sort

2023-12-24T14:18:05Z

raymondfam marked the issue as duplicate of #495

#3 - c4-judge

2024-01-06T18:14:50Z

MarioPoneder changed the severity to QA (Quality Assurance)

#4 - c4-judge

2024-01-07T16:03:44Z

MarioPoneder marked the issue as grade-c

#5 - c4-judge

2024-01-10T17:32:52Z

This previously downgraded issue has been upgraded by MarioPoneder

#6 - c4-judge

2024-01-10T17:33:27Z

MarioPoneder marked the issue as duplicate of #515

#7 - c4-judge

2024-01-10T17:35:51Z

MarioPoneder marked the issue as partial-50

#8 - c4-judge

2024-01-11T18:03:12Z

MarioPoneder changed the severity to 2 (Med Risk)

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