Wrong implementation of nonReentrantView modifier does not prevent the read-only reentrancy.
As implemented, the nonReentrantView modifier does not actually prevent read-only reentrancy, it just checks if (s.reentrantStatus == Constants.ENTERED) and nothing happens after this check, all the functions using the modifier are just being executed as if there is no modifier.
Makes read-only reentrancy possible.
Manual review
Implement the nonReentrantView modifier the proper way, as in nonReentrant modifier:
modifier nonReentrant() {
if (s.reentrantStatus == Constants.ENTERED) revert Errors.ReentrantCall();
s.reentrantStatus = Constants.ENTERED;
_;
s.reentrantStatus = Constants.NOT_ENTERED;
}
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.