The tillIn()
function includes a validation to ensure that the msg.value
sent with the transaction is greater than the specified amount. This condition inadvertently causes a denial of service (DoS) when the msg.value is exactly equal to the amount, preventing users from successfully transferring native tokens even when they have provided the correct value.
The tillIn function allows certain related contracts to deposit tokens into a capital pool. The relevant code snippet is as follows:
The condition if (msg.value < _amount)
is intended to ensure that the transaction includes sufficient value. However, this condition fails to account for the case where msg.value
is exactly equal to _amount
, preventing valid transfers.
This issue can cause a denial of service (DoS) for users attempting to transfer native tokens when the provided msg.value
matches the _amount
exactly. The contract will incorrectly revert the transaction, resulting in users being unable to complete valid token transfers.
Manual
To mitigate this issue, the condition should be updated to allow transactions where msg.value
is equal to or greater than _amount
. The corrected condition should be:
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.