Sablier

Sablier
DeFiFoundry
53,440 USDC
View results
Submission Details
Severity: low
Invalid

`SablierV2MerkleLockup::hasExpired` is strongly dependend to the block timestamp

Summary

The block timestamp might have a different behaviour on the networks. The contract should consider this possibility.

Vulnerability Details

Line 94 of SablierV2MerkleLockup.sol uses time.blockstamp is an equation which calculates the expiration of the stream. This value might be incorrect when different networks are considered.

Impact

The expiration predicate function might return incorrect value because "Block timestamps on Arbitrum are not linked to the timestamp of the L1 block. They are updated every L2 block based on the sequencer's clock. These timestamps must follow these two rules: Must be always equal or greater than the previous L2 block timestamp." [Arbitrum Docs]

Tools Used

Recommendations

When calculating the expiration consider the used network.

Updates

Lead Judging Commences

inallhonesty Lead Judge about 1 year ago
Submission Judgement Published
Invalidated
Reason: Non-acceptable severity
Assigned finding tags:

Info/Gas/Invalid as per Docs

https://docs.codehawks.com/hawks-auditors/how-to-determine-a-finding-validity

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.