Submitted by chaduke, also found by KIntern_NA, rbserver, cccz, and cccz
syncFeeCheckpoint()  does not modify the highWaterMark correctly, sometimes it might even decrease its value, resulting in charging more performance fees than it should.
The Vault.syncFeeCheckpoint() function does not modify the highWaterMark correctly, sometimes it might even decrease its value, resulting in charging more performance fees than it should.  Instead of updating with a higher share values, it might actually decrease the value of highWaterMark. As a result, more performance fees might be charged since the highWaterMark was brought down again and again.
https://github.com/code-423n4/2023-01-popcorn/blob/d95fc31449c260901811196d617366d6352258cd/src/vault/Vault.sol#
L496-L499
Remix
Revise the syncFeeCheckpoint() as follows:
RedVeil (Popcorn) confirmed 
