Normal behavior: Only the designated Owner should be able to set the secret.
Issue: set_secret
lets any signer create a Vault
under their own address. This contradicts the stated role model and enables anyone to create vaults arbitrarily, spamming storage and events and confusing off-chain consumers that assume a single “owner.”
Likelihood:
Reason 1: Any account with a signer can call set_secret
with no checks.
Reason 2: Contract documentation explicitly restricts this to Owner, but code doesn’t, so integrators will rely on the wrong assumption and build unsafe UX on top.
Impact:
Impact 1: Breaks the Owner-only model; multiple unrelated vaults get created, diluting semantics.
Impact 2: Enables cheap event and state spam at scale, increasing indexer load and confusing analytics.
In Move for Aptos, the term "owner" refers to a signer, which is a verified account that owns a given resource, has permission to add resources and the ability to grant access or modify digital assets. Following this logic in this contest, the owner is the account that owns `Vault`. This means that anyone has right to call `set_secret` and then to own the `Vault` and to retrieve the secret from the `Vault` in `get_secret` function. Therefore, this group is invalid, because the expected behavior is anyone to call the `set_secret` function.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.