CertiK reviewed Altura (Altura NFT (Audit)) on 20 Dec 2023: 16 findings, 0 critical; 4 acknowledged, 12 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 | 0 | 0 |
| High | 0 | 2 | 0 |
| Medium | 0 | 2 | 0 |
| Low | 12 | 0 | 0 |
In the contract `AlturaNFTFactoryV3` the role `_owner` has authority over the functions: - _authorizeUpgrade() - setFeeAddress() - setSwapFeePercent() - setTarget() - delist() - updatePrice() Any compromise to the `_owner` account may allow the hacker to take advantage of this authority and - upgrade mechanism - set fee address - set swap fee percent - set target address - delete list - update price In the contract `AlturaNFTV3` the role `_owner` has authority over the functions: - setName() - setURI() Any compromise to the `_owner` account may allow the hacker to take advantage of this authority and set collection name/URI In the contract `AlturaNFTV3` the role `MINTER_ROLE` has authority over the functions: - addItems() - mint() - setItemRoyalty() - consumeItem() Any compromise to the `MINTER_ROLE` account may allow the hacker to take advantage of this authority and - add items - mint tokens to the recipient - set item royalty fee - consume item
`AlturaNFTFactoryV3` and `AlturaNFTV3` are upgradeable contracts, the owner can upgrade the contract without the community's commitment. If an attacker compromises the account, he can change the implementation of the contract and drain tokens from the contract.
In the `list()` function, an item can be created in two ways. The first is by transferring `_amount` NFTs to the contract, while the second is by minting `_amount` NFTs to the contract using the `AluturaNFT` contract when `_bMint` is set to `true`. However, a new issue arises with the second way: if the owner of the item calls the `delist()`/`removeItems()` function, the NFTs are transferred from the contract to the owner instead of being burned, allowing the owner to obtain NFTs for free.
A manipulation attack occurs when NFTs are purchased in advance, and then the price or currency type is subsequently updated. In such a scenario, if the owner of the NFT detects a pending buy transaction and the buyer approves enough tokens to the contract, he/she can either raise the price to a high level, forcing the buyer to spend more tokens to purchase the same NFTs or change the currency type, forcing the buyer to spend other tokens for the purchase when the buyer approves enough tokens to the contract.
The report names a repository or files. Open the report to see its scope.
Repository and files the report names (5)
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