Omniscia Seen Haus Audit

NFT Auction Sale System Security Audit

Audit Overview

We were tasked with auditing the codebase of Seen Haus and in particular their novel NFT sale and auction system that also supports escrowed physical NFTs to be sold via a unique ticketing mechanism.

Over the course of the audit we identified multiple complex vulnerabilities that arise from a combination of re-entrancy attacks and system conditions that can lead to loss of user funds.

Additionally, we have noted a wide array of gas and code style optimizations that can be applied to the codebase which we advise the Seen Haus to consider.

On an additional note, the Diamond system implementation that we observed in the codebase appears to be outdated. We strongly advise the Seen Haus team to update to the latest version which will be covered under the scope of the audit.

Post-Audit Conclusion

The Seen Haus team has remediated all findings identified in the report and has provided responses to certain ones that were after consideration deemed either null or inapplicable. The final state of the codebase is of exemplary quality conforming to the CEI pattern, containing extensive documentation, and ultimately fulfilling the project's purpose in a secure manner.

Contracts Assessed

Files in ScopeRepositoryCommit(s)
AccessController.sol (ACR)seen-contracts570abe030a,
277ab4c3a6
AuctionEnderFacet.sol (AEF)seen-contracts570abe030a,
277ab4c3a6
AuctionRunnerFacet.sol (ARF)seen-contracts570abe030a,
277ab4c3a6
AuctionBuilderFacet.sol (ABF)seen-contracts570abe030a,
277ab4c3a6
DiamondLib.sol (DLB)seen-contracts570abe030a,
277ab4c3a6
DiamondCutFacet.sol (DCF)seen-contracts570abe030a,
277ab4c3a6
DiamondLoupeFacet.sol (DLF)seen-contracts570abe030a,
277ab4c3a6
InterfaceInfo.sol (IIO)seen-contracts570abe030a,
277ab4c3a6
ItemsTicketer.sol (ITR)seen-contracts570abe030a,
277ab4c3a6
JewelerLib.sol (JLB)seen-contracts570abe030a,
277ab4c3a6
LotsTicketer.sol (LTR)seen-contracts570abe030a,
277ab4c3a6
MarketDiamond.sol (MDD)seen-contracts570abe030a,
277ab4c3a6
MarketClientLib.sol (MCL)seen-contracts570abe030a,
277ab4c3a6
MarketClerkFacet.sol (MCF)seen-contracts570abe030a,
277ab4c3a6
MarketClientBase.sol (MCB)seen-contracts570abe030a,
277ab4c3a6
MarketHandlerLib.sol (MHL)seen-contracts570abe030a,
277ab4c3a6
MarketClientProxy.sol (MCP)seen-contracts570abe030a,
277ab4c3a6
MarketConfigFacet.sol (CON)seen-contracts570abe030a,
277ab4c3a6
MarketHandlerBase.sol (MHB)seen-contracts570abe030a,
277ab4c3a6
MarketControllerLib.sol (CON)seen-contracts570abe030a,
277ab4c3a6
MarketControllerBase.sol (CON)seen-contracts570abe030a,
277ab4c3a6
MarketConfigAdditionalFacet.sol (MCA)seen-contracts570abe030a,
277ab4c3a6
Proxy.sol (PRO)seen-contracts570abe030a,
277ab4c3a6
SeenTypes.sol (STS)seen-contracts570abe030a,
277ab4c3a6
SeenHausNFT.sol (SHN)seen-contracts570abe030a,
277ab4c3a6
StringUtils.sol (SUS)seen-contracts570abe030a,
277ab4c3a6
SeenConstants.sol (SCS)seen-contracts570abe030a,
277ab4c3a6
SaleEnderFacet.sol (SEF)seen-contracts570abe030a,
277ab4c3a6
SaleRunnerFacet.sol (SRF)seen-contracts570abe030a,
277ab4c3a6
SaleBuilderFacet.sol (SBF)seen-contracts570abe030a,
277ab4c3a6

Audit Synopsis

SeverityIdentifiedAlleviatedPartially AlleviatedAcknowledged
Major3300
Medium2200
Minor8800
Informational121101

During the audit, we filtered and validated a total of 1 findings utilizing static analysis tools as well as identified a total of 24 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 introduce potential misbehaviours of the system as well as exploits.

pie title Total Issues "Informational" : 12 "Minor" : 8 "Medium" : 2 "Major" : 3

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