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:
- The mutable-vkey change (and its delegation to SpokePool) doesn't appear to
have had a dedicated audit pass of its own.
- 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.
The OpenZeppelin audit of SP1Helios (March 2025, PR #2 on across-protocol/sp1-helios,
commit 6d554b9) explicitly stated as a trust assumption:
Since sp1-helios@045b722 ("feat: mutable vkey"), this assumption no longer holds
for the version now living at contracts/sp1-helios/SP1Helios.sol:
heliosProgramVkeycan be rotated post-deployment viaupdateHeliosProgramVkey(),gated by
VKEY_UPDATER_ROLE.We verified on-chain (via broadcast/deployed-addresses.json) that
DEFAULT_ADMIN_ROLEandVKEY_UPDATER_ROLEare currently held by each chain'sSpokePoolcontract (checked 56/999/9745/43114), not an EOA — so access controlitself 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:
have had a dedicated audit pass of its own.
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.