59814 sc low stargatenft sol addlevel function not implement updatelevelboostpriceperblock

Submitted on Nov 16th 2025 at 03:44:19 UTC by @ox9527 for Audit Comp | Vechain | Stargate Hayabusaarrow-up-right

  • Report ID: #59814

  • Report Type: Smart Contract

  • Report severity: Low

  • Target: https://github.com/immunefi-team/audit-comp-vechain-stargate-hayabusa/tree/main/packages/contracts/contracts/StargateNFT/StargateNFT.sol

  • Impacts:

    • Griefing (e.g. no profit motive for an attacker, but damage to the users or the protocol)

Description

Brief/Intro

From StargateNFT.sol comment:

All NFT levels have a cap, we are adding 3 new levels at launch, and more levels can be added in the future

The addLevel function:

    function addLevel(
        DataTypes.LevelAndSupply memory _levelAndSupply
    ) public onlyRole(LEVEL_OPERATOR_ROLE) {
        Levels.addLevel(_getStargateNFTStorage(), _levelAndSupply);
    }

LEVEL_OPERATOR_ROLE can add new levels by invoking the addLevel() function. However, when a new level is added, the boostPricePerBlock is not configured. As a result, users can boost the newly added level by calling StargateNFT.sol::boost() without paying any fee, which leads to a loss of expected revenue and breaks the intended fee mechanism.

Vulnerability Details

Levels.updateLevelBoostPricePerBlock is not configured.

Impact Details

User pay less fee than expected

Proof of Concept

1

PoC — Test contract

Deploy this test contract (found below) which demonstrates adding a level and then minting & boosting without fee due to missing boost price configuration.

2

How to run

Run the specific test demonstrating the issue:

This test shows that after addLevel is called, boost() can be invoked for the new level without the expected boost fee being applied.

Was this helpful?