Omniscia Arcade XYZ Audit
Protocol Implementation Security Audit
Audit Report Revisions
Commit Hash | Date | Audit Report Hash |
---|---|---|
f1eb8ae7b7 | July 21st 2023 | d8001c12b8 |
7a4e1dc948 | August 16th 2023 | 1b32f8b17a |
45ccaa43fa | August 19th 2023 | 1e208dfd32 |
45ccaa43fa | September 12th 2023 | 51db706b62 |
Audit Overview
We were tasked with performing an audit of the Arcade XYZ codebase and in particular their version 3 implementation of a decentralized NFT borrowing and lending market.
Over the course of the audit, we identified multiple misconceptions around the AssetVault
implementation that could significantly compromise the integrity of "packaged vaults" and loans created around them.
We advise the Arcade XYZ 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 Arcade XYZ 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 Arcade XYZ and have identified that certain exhibits require a re-evaluation.
We advise the Arcade XYZ team to revisit the following exhibits: CWO-01M, CWA-01M, CWT-01C
Additionally, all acknowledged exhibits should be validated as they may have been missed by the Arcade XYZ team during the first iteration of the report: PVR-01S, PVR-02C, PVR-03C, PVR-01M, CBT-01M, OER-02S, OER-01C, AVT-05C, AVT-01S, AVT-04C, AVT-02C, PNE-01S, LCE-01C, LCE-03C, OCR-01S, OCR-01C, OCR-03M, RCR-01C
Post-Audit Conclusion (45ccaa43fa)
The Arcade XYZ team re-evaluated exhibits CWO-01M, CWA-01M, and CWT-01C providing us with a dedicated response to each as well as a follow-up remediation for CWT-01C.
All remaining exhibits referenced above have additionally been validated as acknowledged by the Arcade XYZ team.
As a result of these updates, we consider all outputs of the report properly consumed by the Arcade XYZ team with no further action required on their end.
Contracts Assessed
Files in Scope | Repository | Commit(s) |
---|---|---|
AssetVault.sol (AVT) | arcade-protocol | f1eb8ae7b7, 7a4e1dc948, 0a7551b095, 45ccaa43fa |
ArtBlocksVerifier.sol (ABV) | arcade-protocol | f1eb8ae7b7, 7a4e1dc948, 0a7551b095, 45ccaa43fa |
ArcadeItemsVerifier.sol (AIV) | arcade-protocol | f1eb8ae7b7, 7a4e1dc948, 0a7551b095, 45ccaa43fa |
BaseURIDescriptor.sol (BUR) | arcade-protocol | f1eb8ae7b7, 7a4e1dc948, 0a7551b095, 45ccaa43fa |
CallBlacklist.sol (CBT) | arcade-protocol | f1eb8ae7b7, 7a4e1dc948, 0a7551b095, 45ccaa43fa |
CallWhitelist.sol (CWT) | arcade-protocol | f1eb8ae7b7, 7a4e1dc948, 0a7551b095, 45ccaa43fa |
CallWhitelistApprovals.sol (CWA) | arcade-protocol | f1eb8ae7b7, 7a4e1dc948, 0a7551b095, 45ccaa43fa |
CallWhitelistDelegation.sol (CWD) | arcade-protocol | f1eb8ae7b7, 7a4e1dc948, 0a7551b095, 45ccaa43fa |
CallWhitelistAllExtensions.sol (CWE) | arcade-protocol | f1eb8ae7b7, 7a4e1dc948, 0a7551b095, 45ccaa43fa |
CollectionWideOfferVerifier.sol (CWO) | arcade-protocol | f1eb8ae7b7, 7a4e1dc948, 0a7551b095, 45ccaa43fa |
ERC721Permit.sol (ERC) | arcade-protocol | f1eb8ae7b7, 7a4e1dc948, 0a7551b095, 45ccaa43fa |
FeeLookups.sol (FLS) | arcade-protocol | f1eb8ae7b7, 7a4e1dc948, 0a7551b095, 45ccaa43fa |
FeeController.sol (FCR) | arcade-protocol | f1eb8ae7b7, 7a4e1dc948, 0a7551b095, 45ccaa43fa |
InterestCalculator.sol (ICR) | arcade-protocol | f1eb8ae7b7, 7a4e1dc948, 0a7551b095, 45ccaa43fa |
Lending.sol (LGN) | arcade-protocol | f1eb8ae7b7, 7a4e1dc948, 0a7551b095, 45ccaa43fa |
LoanCore.sol (LCE) | arcade-protocol | f1eb8ae7b7, 7a4e1dc948, 0a7551b095, 45ccaa43fa |
LoanLibrary.sol (LLY) | arcade-protocol | f1eb8ae7b7, 7a4e1dc948, 0a7551b095, 45ccaa43fa |
OwnableERC721.sol (OER) | arcade-protocol | f1eb8ae7b7, 7a4e1dc948, 0a7551b095, 45ccaa43fa |
OriginationController.sol (OCR) | arcade-protocol | f1eb8ae7b7, 7a4e1dc948, 0a7551b095, 45ccaa43fa |
PunksVerifier.sol (PVR) | arcade-protocol | f1eb8ae7b7, 7a4e1dc948, 0a7551b095, 45ccaa43fa |
PromissoryNote.sol (PNE) | arcade-protocol | f1eb8ae7b7, 7a4e1dc948, 0a7551b095, 45ccaa43fa |
RepaymentController.sol (RCR) | arcade-protocol | f1eb8ae7b7, 7a4e1dc948, 0a7551b095, 45ccaa43fa |
UnvaultedItemsVerifier.sol (UIV) | arcade-protocol | f1eb8ae7b7, 7a4e1dc948, 0a7551b095, 45ccaa43fa |
Vault.sol (VTL) | arcade-protocol | f1eb8ae7b7, 7a4e1dc948, 0a7551b095, 45ccaa43fa |
VaultFactory.sol (VFY) | arcade-protocol | f1eb8ae7b7, 7a4e1dc948, 0a7551b095, 45ccaa43fa |
Audit Synopsis
Severity | Identified | Alleviated | Partially Alleviated | Acknowledged |
---|---|---|---|---|
![]() | 4 | 3 | 0 | 1 |
![]() | 32 | 23 | 0 | 9 |
![]() | 13 | 9 | 0 | 4 |
![]() | 4 | 3 | 0 | 1 |
![]() | 3 | 2 | 0 | 1 |
During the audit, we filtered and validated a total of 8 findings utilizing static analysis tools as well as identified a total of 48 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.
The list below covers each segment of the audit in depth and links to the respective chapter of the report: