The UpliftOnlyExample contract defines upliftFeeBps and minWithdrawalFeeBps as critical parameters used in fee calculations. These values, expressed in basis points (1/10000), determine the fees charged during withdrawal and uplift operations. Without proper validation during deployment, inappropriate values could result in excessive, negligible, or illogical fees, potentially causing financial losses or unintended contract behavior.
The constructor of the UpliftOnlyExample contract does not currently validate the values of _upliftFeeBps and _minWithdrawalFeeBps. These parameters are directly passed into the contract without checks
If _upliftFeeBps or _minWithdrawalFeeBps exceeds 10000 (100%), fees could surpass the total transaction value, rendering the system unusable. Also setting the fees to extremely low values (e.g., 0 or 1 basis point) could undermine the financial sustainability of the system by failing to collect meaningful fees hence users could face unfair or unintended fee structures. Excessive fees could deter usage, while negligible fees could result in loss of confidence in the system's financial integrity.
Manual Review
Implement validation checks in the constructor to ensure that _upliftFeeBps and _minWithdrawalFeeBps fall within appropriate bounds.
Please read the CodeHawks documentation to know which submissions are valid. If you disagree, provide a coded PoC and explain the real likelyhood and the detailed impact on the mainnet without any supposition (if, it could, etc) to prove your point.
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.