
Audit Comp | Quantus
Quantus is a Layer 1 blockchain designed to keep digital assets secure against the emerging threat of quantum computing. Built on Polkadot's Substrate framework and secured by proof-of-work, it replaces elliptic-curve cryptography with lattice-based, post-quantum signatures (an ML-DSA / CRYSTALS-Dilithium scheme), adds a ZK-friendly Poseidon2 hash and a Plonky2-based proof-aggregation layer for scalability, and includes a zk-wormhole system modeled on EIP-7503 for private transfers. It is delivered as a Substrate node, runtime, and pallets, dedicated Rust cryptography libraries for the signatures, hashing, and ZK circuits, and a mobile wallet app. Together these aim to offer a full, quantum-resistant environment for holding and transacting digital wealth.
Evaluating
Triaged by Immunefi
Runnable PoC Required
Vault program
Select the category you'd like to explore
Assets in Scope
Impacts in Scope
Asset Accuracy Assurance
Bugs found on assets incorrectly listed in scope are valid.
Code Update Assurance
Duplicate submissions of bugs are valid until the relevant bug fix is public. Once a fix is public, the bug is out of scope and later submissions of it are invalid. Duplicate submissions of Insights are invalid.
The project commits to keeping all information about bug findings private until each fix is disclosed through the process described in the Bug Fix Policy. This includes bug findings found independently by the project or from concurrent private audits.
Code Freeze Assurance
Code of the assets in scope is frozen while the program is live.
If a bug found during the competition requires an immediate fix, the bug will be considered a publicly known issue as soon as the fix is deployed. Submissions of the same bug after the fix is public are invalid, and a bypass of the fix is considered a new, valid bug.
Duplicate submissions of bugs are valid. Duplicate submissions of Insights are invalid.
The project commits to keeping private all information related to bug findings until this program is over. This means the project will not leak information about any bug findings or planned bug fixes, including bug findings found independently by the project or from concurrent private audits.
Build, Test, and Run
Full instructions are in each repository's README.
- Rust components (chain, qp-poseidon, qp-zk-circuits, qp-rusty-crystals): build with
cargo build --releaseand run tests withcargo test --release. - Mobile app (Flutter): fetch dependencies with
flutter pub get, run the app withflutter run, and run tests withflutter test. - https://github.com/Quantus-Network/quantus-cli a command line tool you can use to make any kind of transaction accepted on chain. People can either build it from source or download it using cargo.
Network not being able to confirm new transactions (total network shutdown)
Unintended permanent chain split requiring hard fork (network partition requiring hard fork)
Direct loss of funds
Permanent freezing of funds (fix requires hardfork)
Execute arbitrary system commands
Retrieve sensitive data/files from a running server, such as:
- /etc/shadow
- database passwords
- blockchain keys (this does not include non-sensitive environment variables, open source code, or usernames)
Taking down the application/website
Subdomain takeover with already-connected wallet interaction
Direct theft of user funds
Malicious interactions with an already-connected wallet, such as:
- Modifying transaction arguments or parameters
- Substituting contract addresses
- Submitting malicious transactions
Injection of malicious HTML or XSS through metadata
Inflation bugs (unauthorized minting)
Out of scope
These impacts are out of scope for this bug bounty program.
All Categories:
- Impacts requiring attacks that the reporter has already exploited themselves, leading to damage
- Impacts caused by attacks requiring access to leaked keys/credentials
- Impacts caused by attacks requiring access to privileged addresses (governance, strategist) except in such cases where the contracts are intended to have no privileged access to functions that make the attack possible
- Impacts relying on attacks involving the depegging of an external stablecoin where the attacker does not directly cause the depegging due to a bug in code
- Mentions of secrets, access tokens, API keys, private keys, etc. in Github will be considered out of scope without proof that they are in-use in production
- Best practice recommendations
- Feature requests
- Impacts on test files and configuration files unless stated otherwise in the bug bounty program
Blockchain/DLT & Smart Contract Specific:
- Incorrect data supplied by third party oracles
- Not to exclude oracle manipulation/flash loan attacks
- Impacts requiring basic economic and governance attacks (e.g. 51% attack)
- Lack of liquidity impacts
- Impacts from Sybil attacks
- Impacts involving centralization risks
Websites and Apps
- Theoretical impacts without any proof or demonstration
- Impacts involving attacks requiring physical access to the victim device
- Impacts involving attacks requiring access to the local network of the victim
- Reflected plain text injection (e.g. url parameters, path, etc.)
- This does not exclude reflected HTML injection with or without JavaScript
- This does not exclude persistent plain text injection
- Any impacts involving self-XSS
- Captcha bypass using OCR without impact demonstration
- CSRF with no state modifying security impact (e.g. logout CSRF)
- Impacts related to missing HTTP Security Headers (such as X-FRAME-OPTIONS) or cookie security flags (such as “httponly”) without demonstration of impact
- Server-side non-confidential information disclosure, such as IPs, server names, and most stack traces
- Impacts causing only the enumeration or confirmation of the existence of users or tenants
- Impacts caused by vulnerabilities requiring un-prompted, in-app user actions that are not part of the normal app workflows
- Lack of SSL/TLS best practices
- Impacts that only require DDoS
- UX and UI impacts that do not materially disrupt use of the platform
- Impacts primarily caused by browser/plugin defects
- Leakage of non sensitive API keys (e.g. Etherscan, Infura, Alchemy, etc.)
- Any vulnerability exploit requiring browser bugs for exploitation (e.g. CSP bypass)
- SPF/DMARC misconfigured records)
- Missing HTTP Headers without demonstrated impact
- Automated scanner reports without demonstrated impact
- UI/UX best practice recommendations
- Non-future-proof NFT rendering
Prohibited Activities:
- Any testing on mainnet or public testnet deployed code; all testing should be done on local-forks of either public testnet or mainnet
- Any testing with pricing oracles or third-party smart contracts
- Attempting phishing or other social engineering attacks against our employees and/or customers
- Any testing with third-party systems and applications (e.g. browser extensions) as well as websites (e.g. SSO providers, advertising networks)
- Any denial of service attacks that are executed against project assets
- Automated testing of services that generates significant amounts of traffic
- Public disclosure of an unpatched vulnerability in an embargoed bounty
Additional Out of Scope information:
Scope boundaries (out-of-scope code that may look in-scope)
Because most of the chain is inherited from Substrate, only Quantus's own code and modifications are in scope. The following are out of scope: unmodified upstream Substrate and all package dependencies; the upstream plonky2 proving system (only Quantus's modifications are in scope); the voting module in qp-zk-circuits; and the threshold module in qp-rusty-crystals.
Privileged actors
Reports that require the involvement of the Technical Collective, acting within its attributed privileges, are out of scope — for example, runtime upgrades, which are not considered a vulnerability. A malicious genesis block is also out of scope. There are no actors whose involvement is out of scope when they exceed their attributed privileges (N/A).
Specific Out of scope clauses:
- Upstream / third-party code. Quantus is built on Polkadot's Substrate, and most of the blockchain's code is inherited from it. Unmodified upstream Substrate code and all package dependencies (approximately 1,200 in the chain) are out of scope — only Quantus's own code and modifications are in scope.
- The plonky2 proving system.
qp-zk-circuitsbuilds on qp-plonky2 — Quantus's fork of Polygon Zero's plonky2 SNARK/STARK proving system, providing proof generation, recursive verification, and the primitives used by qp-zk-circuits. The unmodified upstream plonky2 code is out of scope; only Quantus's own modifications to it are in scope. - The voting module in
qp-zk-circuits. - The threshold module in
qp-rusty-crystals. - A malicious genesis block.
- Account reaping leading to replayed transactions.
- Actions by privileged actors within their privileges. The Technical Collective can perform runtime upgrades; this is not considered a vulnerability. Any bug report requiring the involvement of such privileged actors, as long as they operate within the privileges attributed to them, is out of scope. (There are no addresses whose involvement is out of scope when they exceed their attributed privileges — N/A.)

