
Push Chain is a Solana-side bridge gateway that locks user deposits in a PDA-controlled vault and releases them via TSS-signed outbound operations (withdraw, execute, revert, rescue), enabling bidirectional asset and payload bridging between Solana and Push Chain.
| Target | Type | Severity |
|---|---|---|
https://github.com/pushchain/push-chain-gateway-contracts/tree/5a23518e934cae186c3929f5e5bb736e7e11b574/contracts/svm-gateway Copy Final Commit: 5a23518e934cae186c3929f5e5bb736e7e11b574 | Smart Contract | Critical |
Final Commit: 5a23518e934cae186c3929f5e5bb736e7e11b574
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).
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.
For any questions regarding the program, feel free to reach out in our DualDefense Support Request.
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 - May 2026
admin.rs - admin.rs
deposit.rs - deposit.rs
encoding.rs - encoding.rs
errors.rs - errors.rs
execute.rs - execute.rs
initialize.rs - initialize.rs
lib.rs - lib.rs
mod.rs - mod.rs
pricing.rs - pricing.rs
rate_limit.rs - rate_limit.rs
rescue.rs - rescue.rs
revert.rs - revert.rs
state.rs - state.rs
transfers.rs - transfers.rs
tss.rs - tss.rs
validation.rs - validation.rs
withdraw.rs - withdraw.rs