Jager Hunter 2

CertiKFiles named in the report

CertiK reviewed Jager Hunter (Jager Hunter 2) on 28 Apr 2025: 7 findings, 0 critical; 4 marked fixed, 1 acknowledged, 2 open.

No open critical findings
Open the reportOpen Jager Hunter’s security record

Report hosted on skynet.certik.com.

Trustblock does not review code.

Findings7

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

SeverityOpenAcknowledgedFixed
Critical000
High001
Medium011
Low202
LowConcerns About Automatic Liquidity RemovalOpen

When using the **Pancake Router** to remove liquidity, there may be impermanent loss. This occurs because price fluctuations can cause the value of a liquidity provider's assets to decrease compared to simply holding the assets. As you provide liquidity, changes in asset prices can alter the asset ratio in the pool, affecting the final amount of assets you retrieve. Impermanent loss typically occurs during significant price volatility. When users deposit LP and withdraw their principal after 14 days, the LP contract automatically removes liquidity and transfers the two tokens to the user without their consent, which may result in impermanent loss. We would like to confirm with the client the purpose of this design. ```solidity function withdraw(uint256 amount) external nonReentrant { require(amount > 0, "ZERO"); UserInfo storage user = userInfo[msg.sender]; require(user.lockEndedTimestamp < block.timestamp, "STILL LOCKED"); require(user.amount >= amount, "INVALID AMOUNT"); updatePool(); queueRewards(msg.sender); user.amount -= amount; user.rewardDebt = (user.amount * poolInfo.accLPPerShare) / 1e12; poolInfo.totalAmount -= amount; claimAccountReward(msg.sender); //TransferHelper.safeTransfer(address(LPToken), msg.sender, amount); TransferHelper.safeApprove(address(LPToken), address(jagerToken), amount); bool success = false; uint amountToken; uint amountETH; try jagerToken.removeLiquidity(amount) returns (uint _amountToken, uint _amountETH) { amountToken = _amountToken; amountETH = _amountETH; success = true; } catch { } require(success == true, "REMOVE FAILED"); TransferHelper.safeTransferETH(msg.sender, amountETH); TransferHelper.safeTransfer(address(jagerToken), msg.sender, amountToken); } ```

LowPotential Front-Running AttackOpen

In the `JagerHunterAirdrop` contract, the `startAirdrop()` function lacks proper access control, which allows any user to initiate the airdrop by transferring a small or even zero amount of tokens. This vulnerability could enable a malicious actor to front-run the transaction, potentially disrupting the normal operations of the project. ```solidity function startAirdrop(uint256 amount) external { require(endTime == 0, "STARTED"); TransferHelper.safeTransferFrom(jagerToken, msg.sender, address(this), amount); endTime = block.timestamp + 5 days; totalAmount = amount; yieldNumber = amount * 250 / 10000; emit StartAirdrop(totalAmount, endTime,yieldNumber); } ```

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 (3)

  • JagerHunterLP.sol
  • JagerHunterAirdrop.sol
  • JagerHunterMint.sol

Part of Jager Hunter’s security record

Jager Hunter
Audits1 audit by 1 firmLast audit Apr 2025, by CertiK.
Critical findingsNo open critical findingsIn 1 report.
Open Jager Hunter’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