submitTransaction does not check value against balance, allowing un-executable transactionsMultiSigWallet.submitTransaction (lines 41-48) validates only that _to is nonzero and _value is nonzero; it never checks _value <= address(this).balance. An owner can queue transactions that can never execute, since executeTransaction will revert at the low-level call when the wallet lacks funds.
Likelihood: Low. Requires an owner to submit a transaction exceeding the wallet balance, whether by mistake or to grief the co-owner.
Impact: Low. The transaction list (transactions) is polluted with entries that will always revert in executeTransaction (lines 75-76, where payable(txn.to).call{value: txn.value} fails on insufficient balance). Co-owners may waste an approval on a doomed transaction and the unbounded array grows with dead entries. No funds are lost, but it degrades usability and wastes gas.
Submit a transaction for more than the wallet holds and show it can never execute.
Validate the requested value against the current balance at submit time.
The contest is live. Earn rewards by submitting a finding.
Submissions are being reviewed by our AI judge. Results will be available in a few minutes.
View all submissionsThe contest is complete and the rewards are being distributed.