Normally, smart contracts store sensitive data securely or use encryption/off-chain storage.
In this Move contract, when the set_secret function is called, the secret is stored directly in the Vault resource on-chain. Any data stored on-chain is visible to all participants of the blockchain, meaning anyone can read the secret by inspecting the chain state.
Likelihood: High
Any user with access to blockchain state can read the secret immediately after set_secret is called.
No additional permissions or access control can prevent this, since blockchain storage is inherently public.
Impact: High
Leakage of sensitive secrets stored in the contract.
Compromise of confidential information or business logic relying on the secrecy of these values.
It is recommended to avoid storing plaintext sensitive data on-chain. Secrets should be encrypted before being stored, or kept off-chain with access controlled by the contract.
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.