Beginner FriendlyFoundry
100 EXP
View results
Submission Details
Severity: low
Invalid

Late Execution Due to Sequencer Timestamp Delay and network congestion

Summary

The SantasList smart contract faces a potential late execution of its collectPresent function, primarily due to the combination of sequencer timestamp delay and network congestion on the Arbitrum network.

https://docs.arbitrum.io/for-devs/concepts/differences-between-arbitrum-ethereum/block-numbers-and-time

Vulnerability Details

The documentation and the code are not precise/ contradictory about the exact date where the collectPresent can be called, from the doc:

The Christmas date is approximate, if it's more then 24 hours before or after Christmas, please report that. Otherwise, it's OK.

In the contract:

// This variable is ok even if it's off by 24 hours.
uint256 public constant CHRISTMAS_2023_BLOCK_TIME = 1_703_480_381;
....
//This should not be callable until Christmas 2023 (give or take 24 hours), and addresses should not be able to collect more than once.

In the SantasList contract, the collectPresent function relies on block.timestamp to check if it's Christmas 2023 yet.

But on Arbitrum, the sequencer, which orders transactions, can set block timestamps within a 24-hour range.

This flexibility, combined with potential network congestion, could lead to delays in transaction processing.
During busy periods, if the sequencer sets a block's timestamp at the earlier end of its range, users might find themselves unable to use collectPresent on Christmas Day. They would be blocked by the contract thinking it's still not Christmas, based on the timestamp.

Impact

This issue could prevent users from claiming their presents at the expected time, causing frustration and diminishing trust in the contract's reliability.

Tools Used

Analysis of Arbitrum network features and block.timestamp handling.

Recommendations

Manual Control Option: Introduce a way for a trusted admin to activate collectPresent manually, especially useful in case of network issues or timing mismatches.

Updates

Lead Judging Commences

inallhonesty Lead Judge over 1 year ago
Submission Judgement Published
Invalidated
Reason: Other

Support

FAQs

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