Omniscia Tangible Audit

NFT Baskets Security Audit

Audit Report Revisions

Commit HashDateAudit Report Hash
d4ba5b2363January 25th 2024d09d7d154a
106fc61dcdFebruary 12th 20245c00f1ca13
d7d2436edeFebruary 14th 20240e7cc945cb

Audit Overview

We were tasked with performing an audit of the Tangible codebase and in particular their Tangible NFT Baskets module.

The Basket system is meant to act as a share-based "vault" where multiple Tangible NFTs are deposited and their rent is automatically tracked and disbursed among members of the Basket.

Over the course of the audit, we identified a discrepancy in how rebase operations are handled in a Basket, an arbitrary-call function that can be exploited to harm a Basket, and multiple medium-severity vulnerabilities.

As a security side-note, we would like to state that the overall basket system never explicitly validates that an input Tangible NFT is part of the Tangible system. This is instead indirectly performed by the Basket::_getUSDValue function that relies on a valid oracle being present for the Tangible NFT address.

We advise the Tangible team to closely evaluate all minor-and-above findings identified in the report and promptly remediate them as well as consider all optimizational exhibits identified in the report.

Post-Audit Conclusion

The Tangible team iterated through all findings within the report and provided us with a revised commit hash to evaluate all exhibits on.

We evaluated all alleviations performed by Tangible and have identified that certain exhibits have not been adequately dealt with. We advise the Tangible team to revisit the following exhibits: BTE-02M, BTE-05M

Additionally, the following informational finding has been partially alleviated and should be revisited: BTE-04C

Finally, while exhibit BMR-04C has been correctly addressed, we advise its syntax to be adjusted per the exhibit's alleviation chapter.

Post-Audit Conclusion (d7d2436ede)

The Tangible team reviewed the findings outlined in the above chapter and proceeded to assimilate our feedback in each one of them, ensuring they have been fully alleviated in all circumstances.

We consider all exhibits within the audit report properly consumed by the Tangible team and no open actions to be remaining.

Audit Synopsis

SeverityIdentifiedAlleviatedPartially AlleviatedAcknowledged
1100
3121010
121200
6501
2200

During the audit, we filtered and validated a total of 5 findings utilizing static analysis tools as well as identified a total of 47 findings during the manual review of the codebase. We strongly recommend that any minor severity or higher findings are dealt with promptly prior to the project's launch as they can introduce potential misbehaviours of the system as well as exploits.

Total Alleviations

The list below covers each segment of the audit in depth and links to the respective chapter of the report: