Alchemy - Multisig Plugin

QuantstampRepository at commit 70089a2

Quantstamp reviewed Alchemy ERC (Alchemy - Multisig Plugin) on 29 Mar 2024: 9 findings, 0 critical; 6 marked fixed, 3 acknowledged.

No open critical findings
Open the reportOpen Alchemy ERC’s security record

Report hosted on certificate.quantstamp.com.

Trustblock does not review code.

Findings9

Statuses are the security firm’s own, from its report.

SeverityOpenAcknowledgedFixed
Critical000
High000
Medium000
Low036
LowContract-Owners Can Reuse Signatures From Other Contract-Owners of Same `UserOp`Acknowledged

In the case of a contract owner signature, the `s` value points to the offset of the start of the specific signature of the contract owner. However, unlike the underlying addresses, the offsets are not enforced to be in ascending order. This means that two contract owners can technically share the same signature. It should of course be noted that the underlying contract addresses that those two separate signature validation calls are performed upon still have to differ, but digest and signature can be shared.

LowPotential Size Limitation on `UserOp.signature`Acknowledged

Currently, all the signatures are encoded into the `userOp.signature` field, including both EOA and 1271 contract-based signatures. We could not find any current limitations on the signature field size at this iteration of bundlers, currently the only limitation is the overall block size limit. It could be possible that bundlers will add a limit on that field, especially given the 1271 contract signatures can be of arbitrary size. The current [ERC-4337](https://eips.ethereum.org/EIPS/eip-4337) specification states the following: > When a client receives a `UserOp`, it must first run some basic sanity checks, namely that: The `verificationGasLimit` is sufficiently low (<= `MAX_VERIFICATION_GAS`) ... The statement is saying there can be a limit on `verificationGasLimit` (to protect bundlers from being DoS'ed). And because the size of `userOp.signature` contributes to the verification gas, we can assume the bundler may drop a `UserOp` with a signature that is too large.

LowThe Signature Has No Expiry TimeAcknowledged

The plugin adds the ability to have multiple owners sign a `UserOp` to be executed. This is done via an ECDSA signature for an EOA or a 1271 signature from a smart contract. The signatures are then assembled together and submitted along with the `UserOp`. In the case of an EOA signature, there currently is no expiry time on the validity of the signature, so if the nonce has not been used yet, this signature is valid for the specific `UserOp` for an indefinite amount of time.

Contracts in scope

No deployed address is recorded for this audit.

The report names a repository or files. Open the report to see its scope.

Repository and files the report names (3)

  • https://github.com/alchemyplatform/multisig-plugin/src/MultisigModularAccountFactory.sol at commit 70089a262ca7dbad34d7872611c6a8e0ae2b8204
  • https://github.com/alchemyplatform/multisig-plugin/src/IMultisigPlugin.sol at commit 70089a262ca7dbad34d7872611c6a8e0ae2b8204
  • https://github.com/alchemyplatform/multisig-plugin/src/MultisigPlugin.sol at commit 70089a262ca7dbad34d7872611c6a8e0ae2b8204

Part of Alchemy ERC’s security record

Alchemy ERC
Audits6 audits by 1 firmLast audit May 2025, by Quantstamp.
Critical findingsNo open critical findingsAcross 6 reports.
Open Alchemy ERC’s security record

Security firm

Quantstamp

236 projects reviewed · 332 reports · latest Oct 2026

See Quantstamp’s audits

Something wrong on this page? A missing report, a wrong date, a finding that was fixed since. Tell us and we check it against its source.

Tell us