Omniscia Boson Protocol Audit

Manual Review

Manual Review

A thorough line-by-line review was conducted on the codebase to identify potential malfunctions and vulnerabilities in Boson Protocol's specialized voucher system based on the Diamond standard.

As the project at hand implements a diamond-standard based specialized voucher system, intricate care was put into ensuring that the flow of assets & funds within the system conforms to the specifications and restrictions laid forth within the protocol's specification, that the codebase resembles the original V1 implementation in execution flows, and that the various components of the Diamond standard properly interact between them.

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 multiple misbehaviours and potential vulnerabilities within the system which could have had moderate-to-severe ramifications to its overall operation under edge-case circumstances, however, they were conveyed ahead of time to the Boson Protocol team to be promptly remediated.

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 great extent, however, the terminology used around certain modules such as the "twin", "bundle", and "group" terms can become slightly ambiguous and we advise a "glossary" of terms to be provided within the repository to better aid the code's legibility.

A total of 57 findings were identified over the course of the manual review of which 21 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
ACR-01MPotentially Incorrect Dependency Usage
ACR-02MCircular Access Control Dependency
BCS-01MPotentially Incorrect Type-Hash Definitions
BVR-01MInexistent Prevention of Self-Transfer
BBS-01MInexistent Validation of Valid Bundle Creation
CLB-01MPotentially Discrepant Access Control
CHF-01MPotentially Overly Centralized Configuration Control
CHF-02MInexistent Validation of Numeric Configuration
DBE-01MPotentially Misleading Validation Comments
EIP-01MInexistent Validation of Meta-TX Sender Validity
EIP-02MImproper Domain Separator Retrieval
EIP-03MInsecure Elliptic Curve Recovery Mechanism
EHF-01MImproper Invocation of EIP-20 transfer
FHF-01MInexistent Validation of Token Type
GBE-01MInexistent Validation of Group Entries
GBE-02MInsufficient Evaluation of maxOffersPerGroup
MTH-01MAccount Agnostic Nonce System
OBE-01MInexistent Validation of Proper Voucher Redemption Setup
OHF-01MInexistent Re-Entrancy Protection
PBS-01MPotentially Unsafe Existence Check
SBE-01MPotential of Race Condition in Seller Creation