Omniscia Tangible Audit

Manual Review

Manual Review

A thorough line-by-line review was conducted on the codebase to identify potential malfunctions and vulnerabilities in Tangible's NFT V2 system.

As the project at hand implements multiple asset-managing modules within the Tangible NFT system, intricate care was put into ensuring that the flow of funds & assets within the system conforms to the specifications and restrictions laid forth within the protocol's specification.

We validated that all state transitions of the system occur within sane criteria and that all rudimentary formulas within the system execute as expected. We pinpointed a significant price-related flaw within the system's marketplace module which could have had severe ramifications to its overall operation; we strongly advise the Tangible team to promptly evaluate and remediate this exhibit.

Additionally, the system was investigated for any other commonly present attack vectors such as re-entrancy attacks, mathematical truncations, logical flaws and ERC / EIP standard inconsistencies. The documentation of the project was satisfactory to a certain extent, however, we strongly recommend it to be expanded at certain complex points such as the "hidden" cross-contract interaction flow described in the audit's summary.

A total of 77 findings were identified over the course of the manual review of which 29 findings concerned the behaviour and security of the system. The non-security related findings, such as optimizations, are included in the separate Code Style chapter.

The finding table below enumerates all these security / behavioural findings:

IDSeverityAddressedTitle
CFV-01MISO 3166-1 Numeric-3 Standard Incompatibility
CFV-02MInexistent Enforcement of Registration
EEG-01MIncorrect Output Amount Measurement
EEG-02MInexistent Sanitization of Trade Routes
FV2-01MIncorrect Adjustment of Tangible Labs Address
FV2-02MIncorrect Price Assumption
FV2-03MInexistent Prevention of Default Payment Token Configuration
FV2-04MIncorrect Decimal Division
FV2-05MInexistent Validation of Seize Expiry Duration
FV2-06MInsufficient Validation of Seizure Validity
GOT-01MImproper Integration of Chainlink Oracles
MV2-01MInexistent Restriction of Storage Payment Amount
MV2-02MInsecure Validation of Tangible NFT Existence
MV2-03MInexistent Validation of Lot Token & Price
ROV-01MInexistent Normalization of Price
ROV-02MImproper Integration of Chainlink Oracles
RMR-01MIncorrect Maintenance of Claimed Amount Total
RMR-02MInexistent Deletion of Deposit Time
SFD-01MInexistent Protection of Fee Distribution
SFD-02MInexistent Tangible Token Burn Workflow (Satellite Chain)
SFD-03MInsecure On-Chain Trades
TNF-01MInexistent Usage of Function
TNF-02MIncorrect Index Entry
TNF-03MInexistent Prevention of Duplicate Entries
TND-01MInexistent Prevention of Symbol Overwrite
TNT-01MIncorrect Restriction of Feature Removal
TNT-02MUnsafe Adjustment of Storage Decimals
TRH-01MPotentially Inexposed Function Integration
UUO-01MMismatch of Function Specification