LIQ Finance

CertiKFiles named in the report

CertiK reviewed LIQ Finance on 1 Dec 2022: 6 findings, 1 critical; 5 marked fixed, 1 open.

1 critical finding, fixed
Open the reportOpen LIQ Finance’s security record

Report hosted on skynet.certik.com.

Trustblock does not review code.

Findings6

Statuses are the security firm’s own, from its report.

SeverityOpenAcknowledgedFixed
Critical001
High100
Medium000
Low004
CriticalLack of access restriction on function "burn()"Fixed

The `LCakeVaultFactory.sol` mint NFTs as the certificate of deposits. But the function `burn()` in the aforementioned line can be called by anyone as it has no access restriction. This enables anyone to call this function to burn users' certificates. ```solidity=37 function burn(uint256 tokenId) public { _burn(tokenId); } ``` **Attack scenario**\ An attacker can call this function to burn all NFT certificates, thus causing the user to lose all funds in the contract `LCakeVaultImpl`.

LowLack of Storage Gap in Upgradeable ContractFixed

For upgradeable contracts, there must be storage gap to "allow developers to freely add new state variables in the future without compromising the storage compatibility with existing deployments". Otherwise it may be very difficult to write new implementation code. Without storage gap, the variable in **child contract** might be overwritten by the upgraded base contract if new variables are added to the base contract. Refer to https://docs.openzeppelin.com/upgrades-plugins/1.x/writing-upgradeable

LowMissing Error MessagesFixed

The **require** can be used to check for conditions and throw an exception if the condition is not met. It is better to provide a string message containing details about the error that will be passed back to the caller. ```solidity=23 modifier whenNotPaused { require(paused == false); _; } ```

LowMissing IPFS CheckFixed

The function doesn't verify if the supplied `baseURI` is a valid IPFS location.

LowNo empty initializer constructor for UUPS upgradaFixed

It's recommended the team verify the UUPS implementation contract is initialized correctly. Besides initializing the contract, another way to prevent the implementation contract from being used is to invoke the "initializer" modifier in the constructor to automatically initialize it when it is deployed. For more information, please refer to: https://docs.openzeppelin.com/upgrades-plugins/1.x/writing-upgradeable#initializing_the_implementation_contract

Contracts in scope

No deployed address is recorded for this audit.

The report names a repository or files. Open the report to see its scope.

Repository and files the report names (5)

  • contracts/LCakeVaultConfig.sol
  • contracts/LCakeVaultImplV2.sol
  • contracts/LCakeVaultFactory.sol
  • contracts/LCakeVaultImpl.sol
  • contracts/LCakeNonFungiblePosition.sol

Part of LIQ Finance’s security record

LIQ Finance
Audits1 audit by 1 firmLast audit Dec 2022, by CertiK.
Critical findingsNo open critical findingsIn that report, 1 critical finding was reported. It is marked fixed by the firm that reported it.
Open LIQ Finance’s security record

Security firm

CertiK

1,044 projects reviewed · 1,375 reports · latest May 2025

See CertiK’s audits

Something wrong on this page? A missing report, a wrong date, a finding that was fixed since. Tell us and we check it against its source.

Tell us