Skip to content

Security: superform-xyz/v2-core

SECURITY.md

Security Policy

This section outlines the security policy and known limitations of the Superform v2 core protocol.

Known Issues

The protocol includes a few accepted trade-offs and architectural decisions that integrators and users should be aware of and handle accordingly.

1. Cross-Bridge replay attack

There is a low-likelihood scenario where a user's signed bridging intent may still be executed on the destination chain even after it has been canceled on the source chain.

Given the user must still have sufficient balance on their smart account on the destination chain, this is deemed to be a non-issue as it suffices to better UX and intended behavior to simplify core actions.

2. Marking root as processed

The process of marking a root as processed is susceptible to front-running. While mitigations are in place, it may not cover all edge cases.

3. Assumption of a static system

Superform assumes the system remains static between the time a user signs an intent and its execution. If key components (e.g., smart account configuration or target contracts) change during this period, it may result in unexpected behavior.

Users accept this trade-off when using the protocol.

4. Hook safety assumptions

Hooks are external contracts and may not always be trustworthy. Interacting with unverified or malicious hooks can compromise user funds. Superform does not guarantee the safety of custom or third-party hooks.

5. Limited ERC-7579 compatibility

Superform is tested and optimized for Nexus and Safe smart accounts. Other ERC-7579-compatible smart accounts may not function as intended and should be used with caution.

6. Cost basis caching

Superform uses a cached cost basis when a user's smart account withdraws directly from a vault. This is intended behavior.

7. Vault integration dependencies

Superform relies on vaults exposing accurate functions for pricing, like convertToAssets() in ERC-4626. Misconfigured or non-compliant vaults may lead to issues such as failed deposits or withdrawals. For vaults with timelocks, special hooks must be used before normal actions. Proper integration is essential to avoid disruptions.

8. Fee skipping

There are multiple edge cases where protocol fees may be bypassed. While this is an accepted trade-off, it should be noted when designing or integrating with the system.

9. One leaf per destination limitation

The destination executor supports only one leaf per destination in the Merkle root. Signing multiple leaves for the same destination may cause race conditions. While this is not expected to result in fund loss, it can cause execution conflicts.

10. Infinite deadline transactions

The protocol allows signatures with no expiration. While convenient, these signatures can pose risks in certain operational contexts and should be used carefully.

11. Multiple valid execution paths

Once an intent is signed, there are several valid methods to execute it, even in cases where the associated bridge transaction has not completed successfully. This provides flexibility but requires careful handling by integrators to avoid unintended consequences.

There aren’t any published security advisories