CertiK reviewed KOLNET on 14 Jul 2022: 10 findings, 1 critical; 3 marked fixed, 2 acknowledged, 5 open.
Report hosted on skynet.certik.com.
Trustblock does not review code.
Statuses are the security firm’s own, from its report.
| Severity | Open | Acknowledged | Fixed |
|---|---|---|---|
| Critical | 0 | 1 | 0 |
| High | 0 | 1 | 0 |
| Medium | 0 | 0 | 1 |
| Low | 5 | 0 | 2 |
The function `transfer()` will charge the transfer fee `txFee` which is not included in the transfer amount. This logic of charging an extra fee beyond the transfer amount is very dangerous when the token is in several trading pairs. There are attacks using pair functions such as `skim()/sync()` and the extra fee logic to lower the balance of a trading pair which successfully manipulated the token price. For example, a recent attack performed on a token will charge an extra fee when transferring to `uniswap` pairs. The fee is not included in the transfer amount and transferring between pools still charges the fee, so the token balances after the function call will be lower than the reserve rate. After calling the `sync()` function to update the reserve rate to the current balance, the token price will be successfully manipulated. This is against the `uniswap` design and allows the malicious user to arbitrarily modify the reserve rate.
In the contract `Token`, the role `MINTER_ROLE` has authority over the following functions: - function mint() In the contract `Token`, the role `SNAPSHOT_MANAGER_ROLE` has authority over the following functions: - function snapshot() In the contract `Token`, the role `PAUSE_MANAGER_ROLE` has authority over the following functions: - function pause() - function unpause() In the contract `Token`, the role `TXFEE_MANAGER_ROLE` has authority over the following functions: - function setupTxFee() In the contract `LosslessERC20`, the role `recovery admin` has authority over the following functions: - function setLosslessAdmin() - function transferRecoveryAdminOwnership() - function proposeLosslessTurnOff() - function executeLosslessTurnOff() - function executeLosslessTurnOn() In the contract `LosslessERC20`, the role `lossless` has authority over the following functions: - function transferOutBlacklistedFunds() Additionally, address `txFeeBeneficiary` will be used to receive transaction fee. Any compromise to the above roles/accounts may allow a hacker to take advantage of this authority.
The report names a repository or files. Open the report to see its scope.
Repository and files the report names (4)
1,044 projects reviewed · 1,375 reports · latest May 2025
See CertiK’s auditsSomething wrong on this page? A missing report, a wrong date, a finding that was fixed since. Tell us and we check it against its source.
Tell us