RabbitHole Quest Protocol contest - 0xMAKEOUTHILL's results

A protocol to distribute token rewards for completing on-chain tasks.

General Information

Platform: Code4rena

Start Date: 25/01/2023

Pot Size: $36,500 USDC

Total HM: 11

Participants: 173

Period: 5 days

Judge: kirk-baird

Total Solo HM: 1

Id: 208

League: ETH

RabbitHole

Findings Distribution

Researcher Performance

Rank: 162/173

Findings: 1

Award: $2.59

🌟 Selected for report: 0

🚀 Solo Findings: 0

Lines of code

https://github.com/rabbitholegg/quest-protocol/blob/8c4c1f71221570b14a0479c216583342bd652d8d/contracts/RabbitHoleReceipt.sol#L58 https://github.com/rabbitholegg/quest-protocol/blob/8c4c1f71221570b14a0479c216583342bd652d8d/contracts/RabbitHoleTickets.sol#L47

Vulnerability details

Impact

Everyone and anyone can mint a receipt even though they are not an approved minterAddress.

Proof of Concept

In the docs is stated that : "We would like to call out extra attention to QuestFactory.mintReceipt (users should only be able to claim one receipt)". Therefore it uses the RabbitHoleReceipt.mint, which is the function that uses the onlyMinter modifier since the onlyMinter modifier doesn't work accordingly anyone can choose to use different addresses to mint himself receipts and doing whatever he wants with them after that (sell them on secondary market or claim them).

Tools Used

Manual Audit, VS Code

add require() statement in the modifier to ensure the msg.sender == minterAddress

#0 - c4-judge

2023-02-05T02:40:29Z

kirk-baird marked the issue as duplicate of #9

#1 - c4-judge

2023-02-16T07:30:57Z

kirk-baird marked the issue as satisfactory

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