Lending protocol vulnerabilities in disclosed bug bounty reports

Lending markets depend on external prices and on liquidation working under stress — most findings target one or the other.

Reports indexed
252
Total paid
$2.0M
Critical
2
Largest payout
$1.2M

A lending market is solvent as long as collateral is valued correctly and bad positions can be closed. Findings therefore concentrate on valuation — the oracle path, the collateral factor, the treatment of exotic or illiquid assets — and on the liquidation engine that has to function precisely when the network is congested and prices are moving.

Interest accrual is the quieter surface: markets where accrual can be skipped, front-run, or forced to round to zero, and where the index used to compute debt diverges from the actual outstanding balance.

Because lending markets consume prices rather than produce them, they are the most common victim protocol in oracle and flash loan reports.

What reviewers look for

  • Collateral valuation reachable through a manipulable price path
  • Liquidation incentives insufficient under congestion or extreme moves
  • Interest accrual skippable or exploitable through call ordering
  • Debt accounting that can round to zero for small positions
  • Newly listed or illiquid collateral assets with generic risk parameters

Curated highlights

The largest disclosed payouts in this group, with our own summary of each. Every report links back to the original disclosure.

criticalReentrancyEVM-Solidity$1.2M

Read-only reentrancy in LP price oracle drains lending market

A lending market relied on a liquidity pool's raw virtual price function to value LP tokens deposited as collateral. During a liquidity removal operation, ETH transfers to the caller occurred before internal balance and supply states were reconciled, allowing an execution callback while state was inconsistent. An attacker used this callback to fetch an artificially inflated virtual price, enabling them to over-borrow against their collateral and drain the protocol's reserves in a single transaction.

Curve-style Lending Marketcode4renaApr 11, 2023Open
criticalAccess controlSolana-Rust$600k

Missing owner check on Solana instruction lets attacker drain vault

A missing program ownership check in a Solana yield vault protocol allowed unauthorized account spoofing during withdrawal processing. Because the instruction handler accepted an unchecked account and verified only a discriminator byte rather than validating account ownership, an attacker could supply a custom state account with manipulated fields. The protocol trusted the forged state data and generated a Program Derived Address (PDA) signature to execute a token transfer, enabling complete draining of the protocol's vault funds.

Solana Yield VaultimmunefiNov 3, 2022Open
highLogic errorEVM-Solidity$120k

Rounding direction lets attacker mint shares for free on first deposit

A classic ERC-4626 share inflation vulnerability enabled an attacker to steal deposits from initial vault users. By depositing a single wei of assets to receive one share and then transferring a large amount of assets directly to the vault contract, the exchange rate ratio was severely skewed. Subsequent deposits from victims rounded down to zero minted shares while forfeiting their underlying tokens, allowing the attacker to redeem their single share for the entire vault balance.

ERC-4626 VaultcantinaJan 15, 2024Open
mediumFront-running / MEVEVM-Solidity$45k

Sandwichable liquidation bonus enables MEV extraction from borrowers

A lending protocol's liquidation routine executed collateral swaps through an AMM router with zero slippage protection (`amountOutMin` set to zero) while relying on spot prices for bonus calculations. Mempool searchers could sandwich pending liquidation transactions by driving up local pool prices beforehand, forcing the swap to settle at severely degraded exchange rates. This allowed MEV bots to siphon excess value from the liquidated borrower's remaining collateral pool.

Money Marketcode4renaMar 8, 2024Open
mediumReentrancyEVM-Solidity$0

PoolTogether: Unintended or malicious use of prize winners' hooks

In PoolTogether v5, the Vault contract allows prize winners to configure arbitrary hooks via the setHooks function. During the prize claiming process, the contract executes these user-defined hooks prior to and after prize distribution. Because the hook calls lack gas consumption caps and state-change restrictions, a user can configure a malicious hook that conducts unconstrained external operations, griefs claimers paying for transaction gas, or causes claiming transactions to revert. This results in potential gas exhaustion and denial of service for third-party prize claimers.

PoolTogethercode4renaAug 7, 2026Open
mediumLogic errorEVM-Solidity$0

PoolTogether: Improper handling of cases when withdrawable assets = 0

The PoolTogether vault contract contained a logic flaw where it improperly reported its collateralization status when withdrawable assets reached zero. Specifically, the exchange rate calculation function defaulted to a 1:1 ratio when asset balances were depleted, causing the contract to incorrectly identify itself as collateralized. This inconsistency allowed users or protocols to perform operations that should be restricted for an under-collateralized vault, such as minting fees or initiating liquidations, potentially leading to economic losses.

PoolTogethercode4renaAug 7, 2026Open

All reports in this group

Vulnerability classes seen in this protocol type

Related protocol type pages