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 data. This exposes any contract interfacing with it to 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
cross function reentrancies would lead to drainage of funds or data manipulation
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.