Description: The contract grants significant power to the owner, who can change the merkle root or rescue tokens at any time without restrictions. This creates a centralization risk where users must trust the owner not to abuse these privileges. Lines 159-165 (set_merkle_root
) and lines 167-177 (rescue_tokens
) grant powerful capabilities to the owner.
Impact: Users must trust that the owner will not:
Change the merkle root to exclude legitimate users
Rescue tokens that are meant to be claimed by users
Recommended Mitigation:
Implement a timelock mechanism for sensitive owner actions
Consider a multi-signature approach for critical functions
Add restrictions to the rescue_tokens function to ensure it can only rescue tokens that aren't allocated to users:
The `owner` is trusted and the function `rescue_tokens` can be called only by the owner and only in case of emergency. This means the owner will not act maliciously and will not call the function without need. Also, issues realated to the malicious admin actions are invalid according to the CodeHawks documentation: https://support.cyfrin.io/en/articles/10059196-findings-validity
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.