The isValidSignatureWithSender
function ignores its first parameter (address
) and instead uses msg.sender
to determine the smart account owner.
Look at this part of the code: https://github.com/Cyfrin/2024-07-biconomy/blob/9590f25cd63f7ad2c54feb618036984774f3879d/contracts/modules/validators/K1Validator.sol#L99-L109
The function ignores its first parameter (address
) and uses msg.sender
to determine the smart account owner. This can cause issues.
If the IValidator
interface expects the first parameter to be used as the sender address, the current implementation doesnt meet this expectation.
Also, the function assumes that the smart account itself is always the caller, which might not be the case in more complex interactions, such as when called through a proxy or maybe another contract.
Inability to validate signatures for any account other than the one calling the function. Also, there'll be validation issues if the function is called with an address other than msg.sender
. This is non-compliant with the expected behavior of the IValidator
interface.
Manual review
isValidSignatureWithSender
should use the provided address parameter instead of msg.sender
.
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.