★ Public initialize() without initializer modifier
Sanctum's assessment for RD-F-022 — scored green on the v1.7.0 rubric. The evidence below is the curator's reasoning for this score.
Evidence summary #
EVM initialize()+initializer modifier pattern is OpenZeppelin-specific. Anchor uses account discriminators and #[account(init)] constraints enforced at the Solana runtime level — an account can only be initialized once (runtime rejects re-initialization). This is a structural safety guarantee. No initialize() vulnerability class identified in any of the four published audits.
Sources #
- AuditSanctum audit directorySec3, OtterSec, Neodyme, Sec3-unstake audits — no initialize() findingretrieved 2026-05-04
- sanctum-unstake-program Cargo.lock (anchor-lang 0.28.0)Anchor 0.28.0 account initialization model via Cargo.lockretrieved 2026-05-04
Methodology #
Determine whether any implementation contract exposes `initialize(…)` without the OpenZeppelin `initializer` modifier or equivalent initialization lock.
See the full factor methodology and distribution across all protocols →
rubric_version v1.7.0 protocol sanctum factor RD-F-022 score green collected_at 2026-05-04 18:49:23