Some tokens take a transfer fee (e.g. STA, PAXG), some do not currently charge a fee but may do so in the future (e.g. USDT, USDC).
Without measuring the balance before and after the transfer, there's no way to ensure that enough tokens were transferred, in the cases where the token has a fee-on-transfer mechanic. If there are latent funds in the contract, subsequent transfers will succeed.
https://github.com/Cyfrin/2023-07-beedle/tree/main/src/Lender.sol#L203
https://github.com/Cyfrin/2023-07-beedle/tree/main/src/Lender.sol#L267
https://github.com/Cyfrin/2023-07-beedle/tree/main/src/Lender.sol#L269
https://github.com/Cyfrin/2023-07-beedle/tree/main/src/Lender.sol#L403
https://github.com/Cyfrin/2023-07-beedle/tree/main/src/Lender.sol#L505
https://github.com/Cyfrin/2023-07-beedle/tree/main/src/Lender.sol#L656
https://github.com/Cyfrin/2023-07-beedle/tree/main/src/Lender.sol#L403
https://github.com/Cyfrin/2023-07-beedle/tree/main/src/Lender.sol#L505
https://github.com/Cyfrin/2023-07-beedle/tree/main/src/Lender.sol#L656
https://github.com/Cyfrin/2023-07-beedle/tree/main/src/Lender.sol#L563
https://github.com/Cyfrin/2023-07-beedle/tree/main/src/Lender.sol#L651
https://github.com/Cyfrin/2023-07-beedle/tree/main/src/Lender.sol#L653
https://github.com/Cyfrin/2023-07-beedle/tree/main/src/Lender.sol#L403
https://github.com/Cyfrin/2023-07-beedle/tree/main/src/Lender.sol#L505
https://github.com/Cyfrin/2023-07-beedle/tree/main/src/Lender.sol#L656
Consider comparing before and after balance to get the actual transferred amount.
Alternatively, disallow tokens with fee-on-transfer mechanics to be added as reward tokens.
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.