The PerMarketsStorage upgradable contrct serves as the storage of PerMarkets. But it does not have access modifiers to enforce access control to ensure only authorized entities can modify or read sensitive This exposes any contract interfacing with it to cross function reentrancies:
data.PerMarketsStorage.offerInfoMap can be used in cross function reentrancies:
PreMarktes.abortAskOffer
PreMarktes.abortBidTaker
PreMarktes.closeOffer
PreMarktes.createOffer
PreMarktes.createTaker
PreMarktes.getOfferInfo
PreMarktes.listOffer
PerMarketsStorage.offerInfoMap
PreMarktes.relistOffer
PreMarktes.settleAskTaker
PreMarktes.settledAskOffer
PreMarktes.updateOfferStatus
Exposes the protocol to reentrancy attack, making the protocol to lose assets
manual review
for PerMarketsStorage UpgradeableStorage contract
i. Follow OpenZeppelin's recommended practices for upgradeable contracts.
For any contract interfacing with the PerMarketsStorage UpgradeableStorage contract
ii. You can implement a reentrancy guard or
iii. Implement Check-Effects-Interactions (CEI) Pattern
Invalid, all [vague generalities](https://docs.codehawks.com/hawks-auditors/how-to-determine-a-finding-validity#vague-generalities) talking about possible reentrancies 11and afaik, reentrancy is not possible and not proven.
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.