The swap()
and increaseLiquidityCurrentRange()
of the L2TokenReceiver
contract do not set expiration deadlines.
The deadline
parameters in the swap()
and increaseLiquidityCurrentRange()
are set to block.timestamp
. This means that the functions will accept a transaction at any block number (i.e., no expiration deadline).
@1 -- Swap a token with the deadline: block.timestamp. The function will accept a token swap at any block number.
: https://github.com/Cyfrin/2024-01-Morpheus/blob/07c900d22073911afa23b7fa69a4249ab5b713c8/contracts/L2TokenReceiver.sol#L65
@2 -- Increase liquidity with the deadline: block.timestamp. The function will accept a transaction at any block number.
: https://github.com/Cyfrin/2024-01-Morpheus/blob/07c900d22073911afa23b7fa69a4249ab5b713c8/contracts/L2TokenReceiver.sol#L112
Without an expiration deadline, a malicious miner/validator (sequencer) can hold a transaction until they favor it or they can make a profit.
Manual Review
Set the deadline
parameters with proper timestamps.
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.