Skip to content

Audit trust-assumption (immutable updaters) is stale for mutable-vkey design in SP1Helios.sol #1528

Description

@Lutviansyah

The OpenZeppelin audit of SP1Helios (March 2025, PR #2 on across-protocol/sp1-helios,
commit 6d554b9) explicitly stated as a trust assumption:

"The updaters set is immutable—defined at deployment and cannot be modified
afterward... Risk Labs will control the updater role."

Since sp1-helios@045b722 ("feat: mutable vkey"), this assumption no longer holds
for the version now living at contracts/sp1-helios/SP1Helios.sol:
heliosProgramVkey can be rotated post-deployment via updateHeliosProgramVkey(),
gated by VKEY_UPDATER_ROLE.

We verified on-chain (via broadcast/deployed-addresses.json) that
DEFAULT_ADMIN_ROLE and VKEY_UPDATER_ROLE are currently held by each chain's
SpokePool contract (checked 56/999/9745/43114), not an EOA — so access control
itself looks sound today, gated by the same governance that secures the rest
of the bridge.

However, since the originally audited security model assumed immutability
and the current model doesn't, worth flagging:

  1. The mutable-vkey change (and its delegation to SpokePool) doesn't appear to
    have had a dedicated audit pass of its own.
  2. If SpokePool's own admin/governance structure ever changes, the security
    assumption underlying SP1Helios's vkey mutability changes with it — worth
    documenting explicitly as a dependency.

Not reporting this as a vulnerability — access control is correctly enforced
today. Just flagging that the original audit's stated trust assumption is
outdated and might be worth a formal note or re-review.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions