Omniscia Vendor Finance Audit

Initializable Manual Review Findings

Initializable Manual Review Findings

INI-01M: Outdated & Vulnerable Initializer Implementation

Description:

The Initializable implementation that exists in the contract refers to an old version of OpenZeppelin that was susceptible to a re-entrant initialization bug as identified in issue #3006 via a bug bounty.

Impact:

It is currently possible for a sub-call within an initializer in a complex inheritance structure to re-initialize the contract if it is performed on an untrusted party that can re-enter the system.

Example:

contracts/utils/Initializable.sol
33require(
34 _initializing || _isConstructor() || !_initialized,
35 "Initializable: contract is already initialized"
36);

Recommendation:

We advise the code to be updated to reference the latest OpenZeppelin implementation, ensuring the code is not susceptible to re-entrancy initialization attacks.

Alleviation:

The contract is no longer part of the codebase rendering this exhibit inapplicable.