use openzeppelin context::msgSender function to get the address which reverts if the length of calldata is less than
20 bytes (an address length).
The _msgSender function in the OWPIdentity.sol contract does not verify the length of msg.data before attempting to extract the original sender's address.
The function assumes that the last 20 bytes of msg.data contain the original sender's address.
It does not check if msg.data is long enough to safely extract these 20 bytes.
unexpected behaviour
manual review
use openzepplin context contract to get the msgSender : https://github.com/OpenZeppelin/openzeppelin-contracts/blob/448efeea6640bbbc09373f03fbc9c88e280147ba/contracts/metatx/ERC2771Context.sol#L65C4-L78C6
here the function checks the `the calldata length is not less than
20 bytes (an address length).`
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.