Description:
https://github.com/Cyfrin/2024-11-TwentyOne/blob/a4429168302722d14a5e5996d25d6fc5be22a899/src/TwentyOne.sol#L170
The contract uses transfer
to send Ether, which can lead to issues since transfer
imposes a gas limit of 2300, which might not be sufficient if the recipient is a contract with complex logic in its fallback or receive functions. This can cause transactions to fail unexpectedly.
Impact:
Using transfer
can cause transactions to fail if the recipient's fallback or receive function requires more than 2300 gas, leading to potential denial-of-service scenarios and reduced compatibility with certain contracts.
Tools Used:
Manual Review.
Recommended Mitigation:
Replace transfer
with call
to send Ether. This allows the recipient to receive more gas and avoids unexpected failures.
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.