Hello Tradle,
The authorization checks in settleAskMaker and settleAskTaker are based on the offerInfo.authority and _msgSender(). However, the logic differentiates between whether the caller is the authority or the owner, but this is not consistent or secure.
For instance, the fallback to checking owner() in cases where the MarketPlaceStatus is not AskSettling might unintentionally allow unauthorized access if the owner is compromised or if the market status is manipulated.
Solution: Improve the authorization logic by ensuring consistent and strict checks. Consider using a role-based access control mechanism, such as OpenZeppelin’s AccessControl, to define clear roles and permissions.
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.