The MultiSig::approveTransaction
function contains a critical vulnerability that allows unauthorized approvals for transactions. Due to the lack of validation for owner2
, any external account can approve transactions on their behalf, bypassing the intended multi-signature security model.
The MultiSig::approveTransaction
function correctly verifies that msg.sender is owner1 before allowing approval.
However, there is no verification that msg.sender is owner2 when approving on behalf of owner2.
This allows any external account to approve transactions for owner2, leading to unauthorized approvals and potential loss of funds.
A malicious actor can approve transactions on behalf of owner2
, leading to financial losses or unauthorized contract state changes.
. Foundry
To mitigate this issue, add an explicit check to verify that msg.sender is owner2 before allowing the approval:
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.