CertiK reviewed DEBT Box (The Debt Box (BGLD, NATG, ALUM, XPLR)) on 6 Mar 2023: 13 findings, 0 critical; all acknowledged, none fixed.
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 | 0 | 0 |
| High | 0 | 2 | 0 |
| Medium | 0 | 2 | 0 |
| Low | 0 | 9 | 0 |
In the contract `Explore` the role `_owner` has authority over the functions shown in the diagram below. Any compromise to the `_owner` account may allow the hacker to take advantage of this authority and modify the configuration of the contract and mint tokens to himself.  In the contract `Aluminum` the role `_owner` has authority over the functions shown in the diagram below. Any compromise to the `_owner` account may allow the hacker to take advantage of this authority and modify the configuration of the contract and mint tokens to himself.  In the contract `BlackGold` the role `_owner` has authority over the functions shown in the diagram below. Any compromise to the `_owner` account may allow the hacker to take advantage of this authority and modify the configuration of the contract and mint tokens to himself.  In the contract `NaturalGas` the role `_owner` has authority over the functions shown in the diagram below. Any compromise to the `_owner` account may allow the hacker to take advantage of this authority and modify the configuration of the contract and mint tokens to himself. 
The contract owner can set the liquidity address to any address. The target address can be an EOA address or a smart contract. The implementation of the liquidity address is unknown, and whether the collected tokens will be used to provide liquidity is unknown.
The audited token contracts burn additional tokens from the sender's address during a token transfer. This behavior can potentially be exploited if the token's liquidity exists in Uniswap V2 (and its forks), and the liquidity pair address is not excluded from such a fee. The unique 'Skim()' and 'Sync()' functions in the Uniswap V2 pair contract enable such an attack. Please see the 'Scenario' section to understand how this issue can be exploited.
The contract uses the `pragma solidity 0.5.17` directive. This indicates that an outdated version of the compiler is used, which is prone to several disclosed bugs.
10% of the transfer fee will deduct from the sender's wallet, on top of the transfer amount. If user A approves user B 200 tokens and user B uses the "TransferFrom" function to transfer 100 A's tokens, A's balance will deduct by 110, and the "allowance" will only deduct by 100. The allowance reduction in the "TransferFrom" function doesn't put the "Fee" into consideration.
Mathematical operations in the aforementioned function perform divisions before multiplications. Performing multiplication before division can sometimes avoid loss of precision.
Line 646 only checks if the sender is excluded from the fee: ```sol=646 " if (!_isExcludedFromFee[sender]) {" ``` But line 661 checks if both the sender and recipient are excluded from the fee: ```sol=661 if (!_isExcludedFromFee[sender] && !_isExcludedFromFee[recipient]) { ``` The fee check logic is inconsistent across two "if" statements.
The linked code is to transfer the "liquidityFee" to the "liquidity" address, but the value used in the `Transfer` event is "miningFee" instead of the "liquidityFee". ```sol=537 _balances[sender] = _balances[sender] - liquidityFee; _balances[liquidity] = _balances[liquidity] + liquidityFee; emit Transfer(sender, liquidity, miningFee); ```
There should always be events emitted in the sensitive functions that are controlled by centralization roles.
There should always be events emitted in the sensitive functions that are controlled by centralization roles.
There should always be events emitted in the sensitive functions that are controlled by centralization roles.
There should always be events emitted in the sensitive functions that are controlled by centralization roles.
Multiple OpenZeppelin libraries are included in the source code file. It is highly recommended NOT to include OpenZeppelin library code directly in the source code because even slight changes to the library code may lead to major vulnerabilities/bugs.
| Address | Chain | Source code |
|---|---|---|
| 0x2f31…755a0x2f31750a50df85d9c0ef88d0c2fe9f014233755a | Chain: BNB Chain | Source code: Verified source |
| 0x9578…279d0x9578a6cdfcb2d1a3075385217737f71adc29279d | Chain: BNB Chain | Source code: Verified source |
| 0xc231…10a30xc2319e87280c64e2557a51cb324713dd8d1410a3 | Chain: BNB Chain | Source code: Verified source |
| 0xbc64…12e40xbc6488c75b47daff2cddd64003a203540b3112e4 | Chain: BNB Chain | Source code: Verified source |
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