Setting an extremely small ratePerSecond
value (e.g., 1) in a stream with a substantial balance (e.g., 50,000e6) can lead to a denial-of-service (DoS) issue in the withdraw
and withdrawMax
functions. When calculating the stream’s coveredDebt
, the result will be zero—even if a significant amount of time has elapsed, such as one year. This occurs because the minimal rate does not allow enough balance to accumulate over time, effectively blocking any withdrawals despite the stream having available funds.
Paste this code on tests/integration/concrete/withdraw/withdraw.t.sol
Establish a minimum allowable ratePerSecond
to prevent this scenario.
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.