The requireIsModifier
checks allows any caller if the configured keeper address is address(0))
This happens because the check if (sender != keeper && keeper != address(0) only reverts when the keeper is non-zero and doesn't match the sender. If address is address(0), the check is bypassed.
Attackers can act as keepers for market with unconfigured keepers.
leading to maliciousactivities within the system.
The severity is high because any user could perform keeper-only actions, leading to unauthorised operations. This could allow attackers to manipulate the system, stealing funds or causing different harm to the system.
Manual review
Modify the check to be if(sender != address(0), "Keeper not set") and (sender == keeper, "not keeper") this way if keeper is zero, it will revert, and if keeper sender is not keeper it will also revert.
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.