Omniscia Tangible Audit
NFT Baskets Security Audit
Audit Report Revisions
Commit Hash | Date | Audit Report Hash |
---|---|---|
d4ba5b2363 | January 25th 2024 | d09d7d154a |
106fc61dcd | February 12th 2024 | 5c00f1ca13 |
d7d2436ede | February 14th 2024 | 0e7cc945cb |
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
Severity | Identified | Alleviated | Partially Alleviated | Acknowledged |
---|---|---|---|---|
1 | 1 | 0 | 0 | |
31 | 21 | 0 | 10 | |
12 | 12 | 0 | 0 | |
6 | 5 | 0 | 1 | |
2 | 2 | 0 | 0 |
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: