The WithdrawalPool contract instances of unsafe integer downcasting from uint256 to uint128. This can lead to data truncation, resulting in incorrect withdrawal processing and financial discrepancies. The vulnerability arises from direct casting without checks, which can lead to significant data loss if the values exceed the uint128 range.
The contract performs direct downcasting of integer types without ensuring the value fits within the target type's range.
Users could withdraw more than their fair share due to incorrect share accounting, leading to financial losses for the contract.
Manual review
Use OpenZeppelin SafeCast library to safely perform downcasting.
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.