The collectFee() function uses an unsafe transfer() call for WETH tokens that doesn't check the return value, allowing the function to succeed even when the token transfer fails silently.
The collectFee() function should safely transfer all accumulated WETH fees to the collector address and revert if the transfer fails to ensure fee collection integrity.
Likelihood:
Occurs when WETH token contract returns false instead of reverting on failed transfers
Some ERC20 implementations (including potential WETH variants) return false on failure rather than reverting
Impact:
Fees remain stuck in the contract while the collector believes they were successfully collected
No event emission or error indication when WETH transfer fails
Loss of transparency in fee collection process
Potential permanent loss of fees if collector role cannot be changed
The POC demonstrates that with this WETH implementation it returns false instead of reverting. Then the collectFee() function will succeed while leaving WETH tokens stuck in the contract, creating a false sense of successful fee collection.
use safeTransfer, that will revert if failure occurs.
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.