#59371 [SC-Low] avoid leaving a vault contract uninitialized

Submitted on Nov 11th 2025 at 16:54:38 UTC by @Flare0x for Audit Comp | Firelight

  • Report ID: #59371

  • Report Type: Smart Contract

  • Report severity: Low

  • Target: https://github.com/firelight-protocol/firelight-core/blob/main/contracts/FirelightVault.sol

  • Impacts:

    • Smart contract unable to operate due to lack of token funds

Description

Brief/Intro

The vault contract has no constructor, which disables the initializer.

Vulnerability Details

An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation

  • contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke

  • the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:

Impact Details

An uninitialized contract can be taken over by an attacker.

References

Include inside the FirelightVault contract for safety. constructor() { _disableInitializers(); }

Proof of Concept

Proof of Concept

Was this helpful?