Even if the function follows the best practice of check-effects-interaction, not using a reentrancy guard when there may be transfer hooks will open the users of this protocol up to read-only reentrancies with no way to protect against it, except by block-listing the whole protocol.
https://github.com/Cyfrin/2023-08-sparkn/blob/main/src/Distributor.sol#L164
https://github.com/Cyfrin/2023-08-sparkn/blob/main/src/Distributor.sol#L147
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.