Description: It is crucial to be 100% clear and consistent on the responsibilities of all "roles" in a protocol. In the natsepc of FestivalPass::withdraw
:
It claims that the "organizer" withdraws ETH but the function itself allows "onlyOwner" to withdraw ETH.
This contradiction is ALSO seen in the IFestivalPass.sol
interface where the event "FundsWithdrawn" specifies "organizer" as the withdrawer.
Impact: The could create confusion amongst the protocol and it is very important to be clear on which user is allowed to withdraw fees.
Proof of Concept:
Where the owner is said to be ETH withdrawer:
FestivalPass::withdraw
function logic itself
IFestivalPass::withdraw
function AND natspec
Where the organizer is said to be ETH withdrawer:
FestivalPass::withdraw
function natspec
IFestivalPass.sol
event FundsWithdrawn
Recommended Mitigation: Either change the natspec to be correct, or adjust the function itself to be "onlyOrganizer." However, I would simply correct the natspec as the "README.md" states, "Owner: The owner...collects the festival proceeds."
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.