Overview
SyntheX is a DeFi system that allows users to mint synthetic assets backed by collateral assets. The main functionality of SyntheX are:
- Reward Distribution: The distribution of rewards for liquidity providers in various pools.
- Collateral Management: Management of collateral assets, including depositing, withdrawing, enabling/disabling collateral, setting collateral caps, and volatility ratios.
- Trading Pools: The contracts enable/disable trading pools and manage volatility ratios.
- Access Control: The contracts include functions for managing access control, pausing/unpausing the contract, and updating addresses for various components.
Task
Blaize’s task was to find and describe security issues in the smart contracts of the platform.
We needed to check the SyntheX protocol with the following parameters:
- Whether contracts the collateral deposit is secure;
- Whether the rewards distribution works as expected;
- Whether the liquidation mechanics is correct;
- Whether the implemented functionality corresponds to the documentation;
- Whether contracts meet best practices in efficient use of gas and code readability.
We have scanned both sets of smart contracts for commonly known and more specific vulnerabilities:
- Unsafe types conversion and unsafe math;
- Timestamp Dependence;
- Reentrancy (for Solidity part);
- Correct roles distribution and access control flow;
- Gas Limit and Loops;
- Transaction-Ordering Dependence;
- DoS attacks with (Gas Limit, unexpected reverts, storage abuse, etc.);
- Byte array vulnerabilities;
- Style guide violation;
- ERC20 standard correspondence and correct tokens usage;
- Uninitialized state/storage/ local variables;
In addition, the SyntheX protocol was checked against less common vulnerabilities from the internal Blaize.Security knowledge base.