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

`MondrianWallet2::_validateTransaction(Transaction)` and `MondrianWallet2::_executeTransaction(Transaction)` have unused return values

Summary

The return values of an external call are not stored in a local or state variable.

Vulnerability Details

MondrianWallet2::_validateTransaction(Transaction) (src/MondrianWallet2.sol#123-147) ignores return value by SystemContractsCaller.systemCallWithPropagatedRevert(uint32(gasleft()()),address(NONCE_HOLDER_SYSTEM_CONTRACT),0,abi.encodeCall(INonceHolder.incrementMinNonceIfEquals,(_transaction.nonce))) (src/MondrianWallet2.sol#124-129)
MondrianWallet2::_executeTransaction(Transaction) (src/MondrianWallet2.sol#149-164) ignores return value by SystemContractsCaller.systemCallWithPropagatedRevert(gas,to,value,data) (src/MondrianWallet2.sol#156)

Impact

The transactions fail to validate (MondrianWallet2::validateTransaction(bytes32, /*_txHash*/ bytes32, /*_suggestedSignedHash*/ Transaction memory _transaction)) nor execute (MondrianWallet2::executeTransaction(bytes32, /*_txHash*/ bytes32, /*_suggestedSignedHash*/ Transaction memory _transaction)) resulting in lost funds.

Tools Used

Slither

Recommendations

Ensure that all the return values of the function calls are used.

Updates

Lead Judging Commences

bube Lead Judge about 1 year ago
Submission Judgement Published
Invalidated
Reason: Non-acceptable severity

Support

FAQs

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