ProjectOpenSea/seaport

1271 signature verification fails when used for bulk signature

XD-OK opened this issue · 1 comments

description

bulk signature introduced different signature lengths (not 64 and 65). When validating signatures with 1271, originSignature is used instead of extractedSignature, which can lead to signature verification failure.

_assertValidEIP1271Signature(
signer,
originalDigest,
originalSignature
);

_assertValidSignature(
offerer,
digest,
originalDigest,
signature,
extractedSignature
);

// NOTE: this is obviously not secure, do not use outside of testing.
if (signature.length == 64) {
// All signatures of length 64 are OK as long as valid is true
return isValid ? _EIP_1271_MAGIC_VALUE : bytes4(0xffffffff);
}
if (signature.length != 65) {
revert();
}

This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 14 days if no further activity occurs. Thank you for your contributions. If you believe this was a mistake, please comment.