/

CVE-2026-106511

Severity:

CRITICAL RISK

(9.8)

Missing Authorization (CWE-862) in MultiversX Multisig

CVE-2026-106511

Deferred

Vulnerability type

Category:

Missing Authorization

CWE:

CWE-306, CWE-862, CWE-863

Impact:

Unauthorized transfer and complete loss of contract-held assets

Severity:

CRITICAL RISK

(9.8)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

A missing independent authorization check in MultiversX's multisig reference implementation allows an account with only the Proposer role to execute actions that should require additional approval.

An attacker with proposer privileges may move the contract's EGLD or ESDT funds alone, potentially draining the entire balance through a small number of transactions without collecting the required signatures.

A missing independent authorization check in MultiversX's multisig reference implementation allows an account with only the Proposer role to execute actions that should require additional approval.

An attacker with proposer privileges may move the contract's EGLD or ESDT funds alone, potentially draining the entire balance through a small number of transactions without collecting the required signatures.

Affected context

The vulnerability occurs in the on-chain multisig smart contract logic when role-based permissions are used to distinguish proposers from authorized signers. It becomes risky where sensitive operations are accepted after checking proposer access but without independently verifying the required multisignature threshold or action-specific authorization.

The vulnerability occurs in the on-chain multisig smart contract logic when role-based permissions are used to distinguish proposers from authorized signers. It becomes risky where sensitive operations are accepted after checking proposer access but without independently verifying the required multisignature threshold or action-specific authorization.

Exploit preconditions

  • Attack surface: Public smart contract endpoints that propose, approve, or execute multisig actions
  • Required access: An account holding the Proposer role, or control of such an account
  • Trigger point: Execution of a fund-transfer or otherwise restricted multisig action
  • Why exploitation is possible: The execution path does not independently enforce the authorization requirement for barred actions, allowing proposer access to substitute for the required signatures
  • Attack surface: Public smart contract endpoints that propose, approve, or execute multisig actions
  • Required access: An account holding the Proposer role, or control of such an account
  • Trigger point: Execution of a fund-transfer or otherwise restricted multisig action
  • Why exploitation is possible: The execution path does not independently enforce the authorization requirement for barred actions, allowing proposer access to substitute for the required signatures

Why this happens

The underlying bug is an incomplete authorization model in which role possession is treated as sufficient for operations that require separate signer approval.

This maps primarily to CWE-862: Missing Authorization because the contract fails to enforce an authorization check for a protected action. It is also related to CWE-863: Incorrect Authorization, since the implemented role-to-operation relationship permits a proposer to perform actions outside the intended permission boundary.

The underlying bug is an incomplete authorization model in which role possession is treated as sufficient for operations that require separate signer approval.

This maps primarily to CWE-862: Missing Authorization because the contract fails to enforce an authorization check for a protected action. It is also related to CWE-863: Incorrect Authorization, since the implemented role-to-operation relationship permits a proposer to perform actions outside the intended permission boundary.

Potential impact

  • An unauthorized proposer may transfer EGLD or ESDT assets
  • The contract balance could be partially or completely drained
  • Legitimate multisignature governance controls may be bypassed
  • Users and organizations relying on the contract could suffer permanent financial loss
  • Trust in dependent applications or token-management workflows may be reduced
  • An unauthorized proposer may transfer EGLD or ESDT assets
  • The contract balance could be partially or completely drained
  • Legitimate multisignature governance controls may be bypassed
  • Users and organizations relying on the contract could suffer permanent financial loss
  • Trust in dependent applications or token-management workflows may be reduced

General mitigation guidance

Mitigation generally focuses on making authorization checks explicit, independent, and action-specific.

Common defensive patterns include:

  • Requiring the configured signer threshold before executing every protected operation
  • Separating proposal, approval, and execution permissions
  • Applying deny-by-default authorization for transfers and other high-impact actions
  • Treating proposer status as insufficient for execution unless the policy explicitly permits it
  • Validating authorization state on-chain at the final execution point rather than relying only on earlier workflow steps
  • Using least-privilege roles and limiting contract-held balances where practical
  • Adding invariant and negative tests covering every prohibited role/action combination

Mitigation generally focuses on making authorization checks explicit, independent, and action-specific.

Common defensive patterns include:

  • Requiring the configured signer threshold before executing every protected operation
  • Separating proposal, approval, and execution permissions
  • Applying deny-by-default authorization for transfers and other high-impact actions
  • Treating proposer status as insufficient for execution unless the policy explicitly permits it
  • Validating authorization state on-chain at the final execution point rather than relying only on earlier workflow steps
  • Using least-privilege roles and limiting contract-held balances where practical
  • Adding invariant and negative tests covering every prohibited role/action combination

How teams detect issues like this

Detection can include static and behavioral review of smart contract authorization paths.

Useful approaches include:

  • Searching for execution functions that check proposer identity without checking signer count, approval state, or authorization thresholds
  • Reviewing every asset-transfer path for an independent authorization decision at execution time
  • Flagging role checks that grant broad permissions to proposal-management accounts
  • Testing forbidden role/action combinations, including a proposer attempting to execute without signatures
  • Monitoring contract events and balance changes for transfers executed with no corresponding approval quorum
  • Enforcing policy checks in code review and automated smart contract analysis tools

Detection can include static and behavioral review of smart contract authorization paths.

Useful approaches include:

  • Searching for execution functions that check proposer identity without checking signer count, approval state, or authorization thresholds
  • Reviewing every asset-transfer path for an independent authorization decision at execution time
  • Flagging role checks that grant broad permissions to proposal-management accounts
  • Testing forbidden role/action combinations, including a proposer attempting to execute without signatures
  • Monitoring contract events and balance changes for transfers executed with no corresponding approval quorum
  • Enforcing policy checks in code review and automated smart contract analysis tools

Sources

SourceLink
gist.github.comgist.github.com/x01griax/c03f4be898dc55ccf3bab667c83c7312
github.comgithub.com/multiversx/mx-multisig-and-modules

Frequently asked

questions

An account with the Proposer role may be able to exploit the issue if the affected execution path does not independently require the configured signer approvals.

No. The described flaw allows a proposer to perform restricted actions without the expected signatures, so control of the required signer threshold may not be necessary.

Enforce the authorization threshold and action-specific permissions at the final execution point for every protected operation, using a deny-by-default model.

Define permissions per operation, separate proposal from execution authority, test negative authorization cases, and monitor transfers for evidence of quorum bypasses.

An account with the Proposer role may be able to exploit the issue if the affected execution path does not independently require the configured signer approvals.

No. The described flaw allows a proposer to perform restricted actions without the expected signatures, so control of the required signer threshold may not be necessary.

Enforce the authorization threshold and action-specific permissions at the final execution point for every protected operation, using a deny-by-default model.

Define permissions per operation, separate proposal from execution authority, test negative authorization cases, and monitor transfers for evidence of quorum bypasses.

Find out what's already
exploitable in your codebase.