There are read-only reentries when the user withdraws native tokens, and any read-only reentries are not sufficient for future code additions and for the rest of the project to add to the project.
After the user withdraws the native tokens successfully, the contract first sends the native tokens to the user through the call call, and then burns the user's shares. at the time of the call to the user, at this time, through the balanceOf querying the user's shares is still the same value as before, there is already a read-only reentry. If there are other projects or changes in the project that rely on the result of this query as a value judgment, it is undoubtedly very dangerous. There have been several attacks in history for this reason.
Read-only re-entry can be a major security risk down the road.
manual
It is recommended to burn before calling the user.
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.