validateUserOp doesn't check for validUntil and validAfter
The 4337 EIP has a few MUSTs that need to be considered when implementing validateUserOp. One of them is time verification
The return value MUST be packed of authorizer, validUntil and validAfter timestamps.
authorizer - 0 for valid signature, 1 to mark signature failure. Otherwise, an address of an authorizer contract. This ERC defines “signature aggregator” as authorizer.
validUntil is 6-byte timestamp value, or zero for “infinite”. The UserOp is valid only up to this time.
validAfter is 6-byte timestamp. The UserOp is valid only after this time.
Having such verification is crucial for any AA wallet, as without the a plethora of vulnerabilities become possible. The simplest of them is slippage or execution at a wrong time.
For example a user may want TX1 to be executed no later than T+2h and TX2 to be execute at T+5h and afterwards.
Missing time checks. Can cause TX to execute at unwanted times.
Manual review
Implement checks to verify for validUntil and validAfter.
Invalid, this check is performed in the entry point contract as seen in this instances [here](https://github.com/eth-infinitism/account-abstraction/blob/develop/contracts/core/EntryPoint.sol#L605) --> [here](https://github.com/eth-infinitism/account-abstraction/blob/develop/contracts/core/EntryPoint.sol#L574-L576)
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.