DatingDapp

First Flight #33
Beginner FriendlyFoundrySolidityNFT
100 EXP
View results
Submission Details
Severity: low
Invalid

Funds Locked Due to Lack of Time-Based Withdrawals in `MultiSigWallet`

Summary

The MultiSigWallet contract does not include a fallback mechanism for withdrawing funds in cases where one owner refuses to approve transactions. As a result, funds may become indefinitely locked if one party is uncooperative.

Vulnerability Details

Root Cause:

The contract requires both owner1 and owner2 to approve a transaction before execution (executeTransaction). If one owner refuses to approve a transaction, there is no alternative method to withdraw the funds.

Example Attack Scenario:
  1. owner1 submits a transaction to withdraw funds.

  2. owner2 refuses to approve the transaction.

  3. Since the contract does not allow withdrawals without dual approval, the funds remain locked indefinitely.

Impact

Loss of Funds: If one owner is uncooperative or becomes inactive, the funds may be permanently inaccessible.

Recommendation

Implement a time-based fallback mechanism allowing funds to be withdrawn if a transaction remains unapproved for a specified duration. Example solutions:

  1. Timeout-Based Auto-Execution: If a transaction is not approved within X days, the submitting owner can execute it unilaterally.

  2. Owner Timeout Override: If one owner is inactive for Y days, the other owner can withdraw their portion of the contract balance.

Updates

Appeal created

n0kto Lead Judge 6 months ago
Submission Judgement Published
Invalidated
Reason: Design choice
Assigned finding tags:

Informational or Gas

Please read the CodeHawks documentation to know which submissions are valid. If you disagree, provide a coded PoC and explain the real likelyhood and the detailed impact on the mainnet without any supposition (if, it could, etc) to prove your point.

Support

FAQs

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