Skip to content

[security] Risk pool NFT minting does not prevent duplicate provider positions #468

Closed

Description

@nonsobethel0-dev

Summary

RiskPool mints LP NFTs for providers, but there is no check preventing a provider from having multiple NFTs. A provider could deposit multiple times, get multiple NFTs, and potentially bypass position limits or gain disproportionate governance weight.

Severity

Medium

Steps to Reproduce

  1. Provider deposits USDC and receives NFT feat: implement risk-pool and governance-dao contracts with full test suites (v2) #1
  2. Provider deposits again and receives NFT policy-engine.rs: buy_policy does not verify that payment (premium) was actually received from caller — free policies possible #2
  3. Provider now has 2 NFTs with full voting weight on each

Expected Behavior

Each provider should have at most one LP position/NFT, or the system should account for multiple positions correctly.

Actual Behavior

Multiple NFTs per provider are allowed without restriction.

Suggested Fix

Check ProviderNft storage before minting; if a provider already has an NFT, add to their existing position instead of minting a new one.

Activity

  1. johnson7104 commented on Sep 25, 2026

    @johnson7104

    @johnson7104 has applied to work on this issue as part of the Stellar Wave Program's 9th wave.

    I can solve the task efficiently

    ℹ️ Repo Maintainers: To accept this application, review their application or assign @johnson7104 to this issue.

  2. Morenike20 commented on Sep 25, 2026

    @Morenike20

    @Morenike20 has applied to work on this issue as part of the Stellar Wave Program's 9th wave.

    Hi Maintainer, I’m interested in contributing to this task. I can deliver a clean implementation within the expected timeframe while adhering to the project’s guidelines.
    

    ℹ️ Repo Maintainers: To accept this application, review their application or assign @Morenike20 to this issue.

  3. Sharon-dev-create commented on Sep 25, 2026

    @Sharon-dev-create

    @Sharon-dev-create has applied to work on this issue as part of the Stellar Wave Program's 9th wave.

    I have experience writing ERC 721 contracts and can resolve this bug effectively. Kindly assign this issue to me.

    ℹ️ Repo Maintainers: To accept this application, review their application or assign @Sharon-dev-create to this issue.

  4. De-hunterJS commented on Sep 25, 2026

    @De-hunterJS

    @De-hunterJS has applied to work on this issue as part of the Stellar Wave Program's 9th wave.

    Gm maintainer, can I work on this

    ℹ️ Repo Maintainers: To accept this application, review their application or assign @De-hunterJS to this issue.

  5. drips-wave commented on Sep 25, 2026

    @drips-wave

    Congratulations, @De-hunterJS! 🎉 Your application was accepted by the repo's maintainers, and the issue is due on September 30, 2026.

    🧑‍💻 @De-hunterJS: Please resolve the issue such that the repo's maintainers have enough time to review your contribution before the due date. You'll earn Points for completing the issue on-time, which will make you eligible for a share of the Stellar Wave Program's reward pool.

    Warning

    When opening a PR, please link it to this issue to ensure it gets tracked accurately. Points are awarded when this issue is marked as completed by the maintainer.

    🤠 Repo maintainers: Please keep an eye on the contributor's progress and review their work before the due date. You can manage this issue, including adjusting its complexity and points, here.

    🌊 Happy Wave 🌊

  6. drips-wave commented on Sep 26, 2026

    @drips-wave

    This issue has been completed by @De-hunterJS as part of the Stellar Wave Program's 9th Wave 🥳

    😎 @De-hunterJS: You earned 200 Points for completing this issue! After the current Wave ends, you'll be eligible for a percentage of the Wave's reward pool based on the percentage of total points you've earned. Learn more here. You can also Leave a review to share your experience working on this issue.

    🧑‍💻 Repo maintainers: How'd the contributor do? Leave a review to share your experience working with them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Stellar WaveIssues in the Stellar wave programbugSomething isn't working

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions