Bert is a flexible staking program that enables users to lock tokens or NFTs into different pool options that offer configurable settings such as lock periods, yield rates and max caps, in exchange for yield rewards, allowing users to select their staking strategy based on their preferences and goals.
| Target | Type | Severity |
|---|---|---|
https://github.com/WebitLabs/bert-staking-sc/tree/28f4679b0a09b887e3fbb1e6f7bd1bcdf9861159 Copy | Smart Contract | Critical |
We are looking for evidence and reasons for incorrect behavior of the smart contract, which could cause unintended functionality:
Clear wording:
Allocated bounty reward will be split between all researchers who submitted the same issue (where uniq issues receive 1/3 of the pool and researchers will get 1/9 each of the initial reward pool). HackenProof is entitled to 10% of rewards as the fee for the triage and other services!
Full Reward: If a critical vulnerability is found by only one participant, that reporter receives 100% of the bounty pool.
If multiple participants find the same vulnerability, the allocated bounty for that issue (bounty pool always equally split among all unique issues reported) is divided equally among all reporters. Example: If two researchers report the same vulnerability, each receives 50% of the allocated bounty. It can be 50% of the bounty pool if only one eligible issue was reported.
Split Based on Uniqueness of issues reported:
Each will receive 50% of the bounty pool.
HackenProof is entitled to 10% of rewards as the fee for the triage and other services‼️
Do not discuss this program or any vulnerabilities (even resolved ones) outside of the program without express consent from the organization
We are happy to thank everyone who submits valid reports which help us improve our security. However, only those that meet the following eligibility requirements may receive a monetary reward:
Hacken - August 2025
src
├── admin
│ ├── init_authority_vault.rs - src/admin/init_authority_vault.rs
│ ├── initialize_pool.rs - src/admin/initialize_pool.rs
│ ├── mod.rs - src/admin/mod.rs
│ ├── set_pool_config.rs - src/admin/set_pool_config.rs
│ └── withdraw.rs - src/admin/withdraw.rs
├── context
│ ├── claim_token.rs - src/context/claim_token.rs
│ ├── initialize.rs - src/context/initialize.rs
│ ├── initialize_user.rs - src/context/initialize_user.rs
│ ├── mod.rs - src/context/mod.rs
│ ├── stake_nft.rs - src/context/stake_nft.rs
│ └── stake_token.rs - src/context/stake_token.rs
├── lib.rs - src/lib.rs
└── state
├── config.rs - src/state/config.rs
├── error.rs - src/state/error.rs
├── mod.rs - src/state/mod.rs
└── pool.rs - src/state/pool.rs