The MondrianWallet2::executeTransactionFromOutside function does not check if the transaction is signed by the owner, which allows anyone to send a transaction to the wallet. This is the same thing as having your private key public. This makes the wallet vulnerable to all kinds of attacks like: an attacker could easily steal all funds and assets from the wallet.
Anyone can send a transaction to the MondrianWallet2 contract using the MondrianWallet2::executeTransactionFromOutside function. This is the same thing as having your private key public on the internet. The MondrianWallet2::executeTransactionFromOutside should be checking if the transaction has been signed by the owner before executing it, but it does not, allowing anyone to send a transaction to the wallet.
By allowing anyone to send a transaction to the MondrianWallet2. An attacker could steal all funds and assets from the wallet. This makes the wallet vulnerable to all kinds of attacks, like for example the wallet being drained, ownership of wallet could be transferred, etc.
The attacker sends a transaction to the MondrianWallet2::executeTransactionFromOutside function and transfers funds from the MondrianWallet2 to the attacker.
Place the following code into ModrianWallet2Test.t.sol
No tools were used to find this vulnerability
In the MondrianWallet2::executeTransactionFromOutside function, check if the transaction has been signed by the owner before executing.
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.