# Interest-bearing suppliers are over-credited when interest-free supply coexists, creating a reserve deficit

Jupiter Lend's multiplicative supply exchange price accrual over-credits interest-bearing suppliers when interest-free vault supply coexists, creating a growing reserve deficit.

- Payout: Contest reward
- Severity: medium
- Program: Jupiter Lend
- Credited: qed
- Disclosed: 2026-07-11
- Write-up quality: 7/10
- Original: https://code4rena.com/reports/2026-02-jupiter-lend#m-02
- Library page: https://bugbountylibrary.com/r/c4%3A2026-02-jupiter-lend%3AM-02
- Tags: domain:web3 impact:funds-loss kind:contest platform:code4rena sev:medium tech:solana technique:source-review vuln:accounting-error vuln:oracle-manipulation

**Target:** Solana lending program token reserve exchange-price accrual
**Root cause:** calculate_exchange_prices applies an amplified supply rate multiplicatively to an already-grown supply_exchange_price, but the amplification factor is only conservation-correct at initialization (Ps==1e12); interest conservation requires a linear, not exponential, relation to borrow price.
**Steps:**
1. Note reserve holds both interest-bearing supply and interest-free supply (Vault positions) on same mint.
2. Observe supply_exchange_price update at token_reserve.rs L524-530 multiplies current Ps by amplified supply_rate.
3. After first accrual Ps>1e12; each subsequent update applies amplified rate to larger Ps.
4. Compare to conservation invariant Ps(t)=1e12+(B_raw/S_raw)*(Pb(t)-1e12)*(1-fee) — linear in Pb, not exponential.
5. Accrue repeatedly; supply-side absolute increase exceeds borrow-side interest collected, deficit widens.
6. Early redeemers withdraw inflated value; later redeemers absorb shortfall.
**How found:** Code-reading of exchange-price accrual; recognized amplification factor derived from a conservation relationship valid only at Ps==1e12, then reasoned that multiplicative application diverges from the required linear conservation invariant.
**Escalation:** Deficit compounds each exchange-price update and accelerates above 80% utilization kink where borrow rates jump 10%→150%.
**Insight:** When a rate formula is calibrated from an invariant at initialization, check whether the update is applied multiplicatively to an already-drifted state variable — conservation relationships linear in one price break under exponential compounding.
