EVM and Solidity vulnerabilities in disclosed bug bounty reports
The deepest disclosure archive in the space, and the environment whose failure modes define the shared vocabulary of smart contract security.
- Reports indexed
- 2318
- Total paid
- $7.4M
- Critical
- 7
- Largest payout
- $2.5M
The EVM is where most disclosed value has been lost and most disclosed bounty has been paid. Its execution model — synchronous external calls, a shared global state, and `delegatecall` proxies layered over immutable code — produces a specific set of recurring failures that the rest of the industry now names after it.
Solidity-specific surface matters here: storage collisions between proxy and implementation, initializer sequencing on upgradeable contracts, `delegatecall` context confusion, gas-dependent behaviour in `transfer` versus `call`, and the long tail of ERC-20 tokens that do not return a boolean, that charge transfer fees, or that rebase.
Reports across every category in the taxonomy land here, so the EVM pages are best read alongside a category filter rather than end to end.
What reviewers look for
- Proxy and implementation storage layout collisions
- Non-standard ERC-20 behaviour: missing return values, fees on transfer, rebasing
- `delegatecall` executing untrusted code in the caller's storage context
- Gas assumptions baked into `transfer` and `send`
- Upgrade sequencing that leaves a window with no owner
Curated highlights
The largest disclosed payouts in this group, with our own summary of each. Every report links back to the original disclosure.
Cross-chain bridge signature replay allows infinite mint
A signature validation vulnerability in a cross-chain bridge protocol allowed valid guardian attestations to be replayed across different destination chains. The signed message digest omitted essential domain parameters like the target chain ID and global emitter sequence, allowing an attacker to reuse a single legitimate withdrawal signature on multiple bridge deployments. Consequently, an attacker could mint unlimited wrapped assets across various target chains without providing additional collateral on the source chain.
Bridge withdrawal proof accepts empty Merkle path
A flawed proof verification mechanism in an L2 canonical bridge contract permitted withdrawal validation using an empty Merkle proof array. When no proof elements were supplied, the verification function failed to iterate and directly compared the unhashed withdrawal leaf against the target root. By matching a fake withdrawal leaf payload with a valid historical or relayable state root, an attacker could forge arbitrary withdrawal events and drain escrowed funds from the bridge.
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.
Spot TWAP oracle manipulated via single-block flash loan
A perpetual derivatives protocol relied on a Uniswap V3 TWAP oracle whose pool observation cardinality was capped at 12, severely reducing its intended 30-second time-weighted average window. An attacker executed a single-block flash loan to heavily distort the underlying spot price without triggering any secondary price feed validation. This allowed the attacker to open oversized leveraged positions at an artificial mark price and force liquidations against counterparties in a single atomic transaction.
Governance proposal executes arbitrary call via delegatecall module
A severe vulnerability in the governance timelock contract enabled proposal execution using DELEGATECALL without restricting the target address to a verified allowlist. Because the delegatecall target contract operated within the context of the timelock's storage without layout restrictions, a malicious proposal could overwrite key storage slots. An attacker leveraging flash loans or governance weight could pass a proposal that delegated to a custom contract, overwriting the timelock admin address in slot 0 to hijack governance authority and drain treasury funds.
Stablecoin redemption path uses stale Chainlink round data
An algorithmic stablecoin's redemption module fetched Chainlink price data via latestRoundData without checking the update timestamp or round completeness status. During market volatility and L2 sequencer outages, oracle updates lagged, leaving stale collateral valuation in place on-chain. Attackers leveraged this discrepancy by buying discounted stablecoins on secondary markets and immediately redeeming them for full-value backing assets through the protocol.
All reports in this group
- PoolTogether: Unintended or malicious use of prize winners' hooksReentrancy$0
- Rigor Protocol: `updateProjectHash` does not check project addressLogic error$0
- Rigor Protocol: `Project.addTasks()` wouldn't work properly when it's called from disputes contract.Logic error$0
- Union Finance: `UnionToken` should check whitelist on `from`?Logic error$0
- Good Entry: When price is within position's range, `deposit` at TokenisableRange can cause loss of fundsLogic error$0
- Rigor Protocol: New subcontractor can be set for a SCConfirmed task without current subcontractor consentReentrancy$0
- Rigor Protocol: Wrong APR can be used when project is unpublished and published againLogic error$0
- Putty: [Denial-of-Service] Contract Owner Could Block Users From Withdrawing Their StrikeAccess control$0
- PoolTogether: The tier odds in `TieredLiquidityDistributor` are incorrectLogic error$0
- Putty: An attacker can create a short put option order on an NFT that does not support ERC721 (like cryptopunk), and the user can fulfill the order, but cannot exercise the optionLogic error$0
- PoolTogether: If the underlying asset is a fee on transfer token, it could break the internal accounting of the vaultLogic error$0
- Union Finance: Rebalance will fail due to low precision of percentagesLogic error$0
- Union Finance: `MAX_TRUST_LIMIT` might be too highLogic error$0
- Putty: `fillOrder()` and `exercise()` may lock Ether sent to the contract, foreverLogic error$0
- PoolTogether: The threshold check for adding of new tiers is skipped when `_nextNumberOfTiers` is at the maximum amountLogic error$0
- Union Finance: Change in interest rate can disable repay of loanLogic error$0
- Union Finance: Comptroller rewards can be artificially inflated and drained by manipulating [totalStaked - totalFrozen] (or: wrong rewards calculation)Logic error$0
- Rigor Protocol: Incorrect initialization of smart contracts with Access Control issueAccess control$0
- Putty: `fee` can change without the consent of usersLogic error$0
- PoolTogether: `TwabLib::getTwabBetween` can return inaccurate balances if `_startTime` and `_endTime` aren't safely boundLogic error$0
- Rigor Protocol: `changeOrder` requires subcontractor signature when the subcontractor address is 0Logic error$0
- Putty: Overlap Between `ERC721.transferFrom()` and `ERC20.transferFrom()` Allows `order.erc20Assets` or `order.baseAsset` To Be ERC721 Rather Than ERC20Logic error$0
- Putty: The contract serves as a flashloan pool without feeReentrancy$0
- Union Finance: debtWriteOff updates `totalFrozen` immaturely, thereby losing staker rewardsLogic error$0
- Union Finance: Duplicate `utoken` and `usermanager` can be added which cannot be deletedLogic error$0
- The Graph: Governor can rug pull the escrowAccess control$0
- Good Entry: Incorrect parameters passed to UniV3 may cause funds stuck in the vaultLogic error$0
- PoolTogether: `drawManager` can be set to a malicious addressAccess control$0
- Good Entry: V3Proxy swapTokensForExactETH does not send back to the caller the unused input tokensLogic error$0
- PoolTogether: Vault contribution calculations wrongly include the current round when claiming prizesLogic error$0
- Putty: Create a short call order with non empty floor makes the option impossible to exercise and withdrawLogic error$0
- Rigor Protocol: `Project.changeOrder()` would work unexpectedly for non SCConfirmed tasks.Logic error$0
- PoolTogether: Balance invariant between the individual and total `twabs` can be brokenLogic error$0
- The Graph: Initialize function in `L2GraphToken.sol`, `BridgeEscrow.sol`, `L2GraphTokenGateway.sol`, `L1GraphTokenGateway.sol` can be invoked multiple times from the implementation contractAccess control$0
- Rigor Protocol: Attacker can drain all the projects within minutes, if admin account has been exposedAccess control$0
- Rigor Protocol: `Project.raiseDispute()` doesn't use approvedHashes - meaning users who use contracts can't raise disputesLogic error$0
- Good Entry: V3 Proxy does not send funds to the recipient, instead it sends to the msg.senderLogic error$0
- Putty: Put options are free of any feesInteger overflow/underflow$0
- Union Finance: User Fund loss in case of Unsupported Market token depositLogic error$0
- PoolTogether: `depositWithPermit` and `mintWithPermit` are allowed to be called by the permit creator onlyLogic error$0
- Rigor Protocol: Builder can halve the interest paid to a community owner due to arithmetic roundingLogic error$0
- Union Finance: `borrow` must `accrueInterest` firstLogic error$0
- PoolTogether: Tiers can be maintained active to give unfair advantage to user through DoSLogic error$0
- PoolTogether: `_requireVaultCollateralized()` is called at the beginning of the functions `mintYieldFee()` and `liquidate()`Logic error$0
- Putty: Zero strike call options will avoid paying system feeLogic error$0
- Rigor Protocol: In `Project.setComplete()`, the signature can be reused when the first call is reverted for some reasonLogic error$0
- Putty: Options with a small strike price will round down to 0 and can prevent assets to be withdrawnInteger overflow/underflow$0
- Good Entry: First depositor can break minting of liquidity shares in GeVaultFront-running / MEV$0
- Good Entry: User can steal refunded underlying tokens from `initRange` operation inside `RangeManager`Access control$0
- Good Entry: Unused funds are not returned and not counted in `GeVault`Logic error$0
- Putty: Malicious Token Contracts May Lead To Locking OrdersLogic error$0
- Rigor Protocol: Untyped data signingLogic error$0
- PoolTogether: A malicious user can steal other user's deposits from Vault.solFlash loan attack$0
- Good Entry: Incorrect Solidity version in FullMath.sol can cause permanent freezing of assets for arithmetic underflow-induced revertOracle manipulation$0
- Good Entry: Overflow can still happen when calculating `priceX8` inside `poolMatchesOracle` operationOracle manipulation$0
- Union Finance: Wrong implementation of `CreditLimitByMedian.sol#getLockedAmount()` will lock a much bigger total amount of staked tokens than expectedLogic error$0
- PoolTogether: Improper handling of cases when withdrawable assets = 0Logic error$0
- Putty: Put option sellers can prevent exercise by specifying zero amounts, or non-existant tokensLogic error$0
- Good Entry: TokenisableRange's incorrect accounting of non-reinvested fees in "deposit" exposes the fees to a flash-loan attackOracle manipulation$0
- Putty: Zero strike call options can be systemically used to steal premium from the takerReentrancy$0
- PoolTogether: `Vault` is not compatible with some ERC4626 vaultsLogic error$0
- Rigor Protocol: Possible DOS in `lendToProject()` and `toggleLendingNeeded()` function because unbounded loop can run out of gasLogic error$0
- PoolTogether: Increasing reserves breaks PrizePool accountingFront-running / MEV$0
- PoolTogether: `Vault.mintYieldFee` function can be called by anyone to mint `Vault Shares` to any recipient addressAccess control$0
- Rigor Protocol: Missing upper limit definition in `replaceLenderFee()` of `HomeFi.sol`Integer overflow/underflow$0
- Putty: Order duration can be set to 0 by Malicious makerLogic error$0
- Putty: Putty position tokens may be minted to non ERC721 receiversReentrancy$0
- Putty: `acceptCounterOffer()` May Result In Both Orders Being FilledFront-running / MEV$0
- Putty: Unbounded loops may cause `exercise()`s and `withdraw()`s to failLogic error$0
- Rigor Protocol: Task Functionality completely sidestepped via `autoWithdraw`Logic error$0
- Rigor Protocol: Add members to the not yet created communityAccess control$0
- The Graph: After proposed 0.8.0 upgrade kicks in, L2 `finalizeInboundTransfer` might not workInteger overflow/underflow$0
- Rigor Protocol: Builders must pay more interest when the system is paused.Logic error$0
- PoolTogether: `VaultFactory` allows deployment of vaults with non-authentic `TwabController` and `PrizePool`Logic error$0
- PoolTogether: Silent overflow could alter computation when calculating the `vaultPortion` in the `PrizePool` contractInteger overflow/underflow$0
- PoolTogether: Number of prize tiers always increases if just 1 canary prize is claimedLogic error$0
- Union Finance: Wrong implementation of `CreditLimitByMedian.sol#getLockedAmount()` makes it unable to unlock `lockedAmount` in `CreditLimitByMedian` modelLogic error$0
- PoolTogether: `Vault.mintWithPermit()` can be DoS'dFront-running / MEV$0
- Putty: Fee is being deducted when Put is expired and not when it is exercised.Logic error$0
- The Graph: If L1GraphTokenGateway's `outboundTransfer` is called by a contract, the entire `msg.value` is blackholed, whether the ticket got redeemed or notBridge exploit$0
- Good Entry: Incorrect calculations in deposit() function in TokenisableRange.sol can make the users suffer from immediate lossLogic error$0
- PoolTogether: Vault does not conform to ERC4626Logic error$0
- Good Entry: addDust does not achieve the goal correctly and may overflow revertLogic error$0
- PoolTogether: Delegated amounts can be forcefully removed from anyone in the `TwabController`Logic error$0
- PoolTogether: `Claimer.claimPrizes` can be front-runned in order to make losses for the claim botFront-running / MEV$0
- Rigor Protocol: Owner of project NFT has no purposeLogic error$0
- Rigor Protocol: Builder can call `Community.escrow` again to reduce debt further using same signaturesLogic error$0
- Putty: Order cancellation is prone to frontrunning and is dependent on a centralized databaseFront-running / MEV$0
- PoolTogether: Loss of precision leads to under-collateralizedInteger overflow/underflow$0
- Union Finance: Rebalance will fail if a market has high utilizationLogic error$0
- Metric: Premature E8 confidence flooring erases configured swap feesLogic error$0
- Metric: Stop-loss checks can miss a 10% drawdown in a normal USDC/WBTC poolLogic error$0
- Metric: ChainlinkOracle cannot pay Data Streams verification fees, causing oracle updates to failLogic error$0
- Metric: Discarding sub-quantum oracle precision lets low-priced assets trade below their signed valueOracle manipulation$0
- Fluid DEX v2: User can steal funds using `_processNormalSupplyAction` uncapped withdrawalLogic error$0
- Monolith Stablecoin Factory: Inconsistency in position health checks will lead to the incorrect user liquidationsLogic error$0
- Monolith Stablecoin Factory: User can abuse rounding issue in order to borrow unbacked tokensLogic error$0
- Monolith Stablecoin Factory: EIP violation for `totalAssets()` in the `Vault`Logic error$0
- stNXM by EaseDeFi: The vault can be drainedAccess control$0
- stNXM by EaseDeFi: Admin fees are applied to NMX tokens during migrationLogic error$0
- stNXM by EaseDeFi: Missing Uniswap V3 cardinality initialization in `StNxmOracle` leads to permanent Denial of ServiceOracle manipulation$0
- stNXM by EaseDeFi: Attacker can profit by manipulating Uniswap liquidity.Oracle manipulation$0
- stNXM by EaseDeFi: Missing Tranche Tracking After `extendDeposit()` Causes Temporary Asset UnderreportingLogic error$0
- stNXM by EaseDeFi: Owner can steal funds on withdraw by burning wrong Uniswap V3 position liquidityAccess control$0
- stNXM by EaseDeFi: Expired tranche cannot be extended due to lack of token allowanceLogic error$0
- Centrifuge Protocol V3.1: Malicious adapters can exploit message batching via adapter-side reentrancy to cause message loss for any other poolReentrancy$0
- Centrifuge Protocol V3.1: `SimplePriceManager.onUpdate()` lack of forward execution fee leads dependent functions to revertOracle manipulation$0
- Centrifuge Protocol V3.1: Stranded ETH on batched `crosschainTransferShares` callBridge exploit$0
- Centrifuge Protocol V3.1: Gas engineering during `adapter` execution can be used to maliciously split critical message batchesAccess control$0
- Centrifuge Protocol V3.1: Prices computed in SimplePriceManager is off even after `BatchRequestManager#revokeShares()` is calledLogic error$0
- Centrifuge Protocol V3.1: Inadequate gas reservation in `Gateway.handle()` try-catch block enables permanent DOS via batch-level gas exhaustionLogic error$0
- Centrifuge Protocol V3.1: `Gateway.withBatch()` lacks message count validation enabling permanent DOS via an excessive number of messages in a batchBridge exploit$0
- Centrifuge Protocol V3.1: `MessageProcessor` fails to disable `unpaidMode` during `UntrustedContractUpdate` execution enabling permanent DOS via malicious unpayable batch creationLogic error$0
- Centrifuge Protocol V3.1: Pool managers can steal all other pools' pending deposits from `globalEscrow` via malicious `requestManager` swappingAccess control$0
- Centrifuge Protocol V3.1: Incorrectly handled subtraction leads to underflow resulting in permanent user fund lock and DOSInteger overflow/underflow$0
- Inverse Finance - Junior Tranche: ERC4626 maxDeposit() Violates Standard by Not Enforcing Actual Deposit LimitsLogic error$0
- Inverse Finance - Junior Tranche: Off-by-one error in exit window check allows users to avoid the withdrawal feeLogic error$0
- Index Fun Order Book: Seller Pays Buyer's Trade Fee in Token Swaps, Leading to Systematic Theft of FundsLogic error$0
- Index Fun Order Book: Lack of Emergency Market Invalidation MechanismLogic error$0
- Index Fun Order Book: Emergency resolver targets wrong epochLogic error$0
- Ethereum Fusaka Upgrade: Weak Fiat-Shamir in `c-kzg-4844.verify_cell_kzg_proof_batch `Logic error$0
- Ethereum Fusaka Upgrade: Prysm incorrectly caches the result of `verify_data_column_sidecar_inclusion_proof` checkLogic error$0
- Ethereum Fusaka Upgrade: Malformed blob tx causes Nethermind validators to stop producing blocksLogic error$0
- Summer.fi - governance v2: Re-adding a removed reward token causes inconsistent userRewardPerTokenPaid accountingLogic error$0
- Super DCA Liquidity Network: Attackers will steal rewards from legitimate pools by making duplicate pools for listed token.Logic error$0
- Super DCA Liquidity Network: Fee collection will always fail for initial positions of SuperDCA pools that contain native tokensLogic error$0
- Super DCA Liquidity Network: Manager can retroactively apply new rate to past time, misallocating emissions - Invariant BrokenLogic error$0
- Super DCA Liquidity Network: System underpays cashback on BNB: hardcoded “USDC = 6 decimals” causes 1e12× underpayment when USDC is 18-decLogic error$0
- Dango DEX: Attacker can exploit thin liquidity in xyk pool to save on fees.Logic error$0
- Brevis Pico ZKVM: ro[config.log_blowup] is not checked to be zero in recursive verifierLogic error$0
- Ammplify: All taker collateral and collected fees can be stolen by re-entering via `RFTLib.settle` to manipulate uniswap spot price when adding Maker liquidityReentrancy$0
- Ammplify: Attackers can drain the protocol tokensLogic error$0
- Ammplify: Accrued maker fees not yet compounded can be stolen by manipulating uniswap pool spot price to reduce fees equivalent liquidity and liquidity share price on maker liquidity depositPrice manipulation$0
- Ammplify: `Maker.adjustMaker` always reverts when trying to reduce maker liquidity while current price is below position rangeLogic error$0
- Ammplify: NFTManager `burnAsset` always triggers JIT penalty on removalLogic error$0
- Ammplify: transferVaultBalance function is unusable and mistransfers user's funds due to hardcoded asset IDLogic error$0
- Ammplify: JIT penalty on fresh fees can be bypassedLogic error$0
- Ammplify: `Maker.collectFees` re-targets liquidity to original amount even if the maker position was adjusted, causing unexpected position change when the user expected to collect fees only.Logic error$0
- Ammplify: NFTManager will break NFT metadata for users as tokenURI() will revertLogic error$0
- Ammplify: Missing width scaling in FeeWalker.up (non-visited) undercredits compounding maker feesLogic error$0
- Ammplify: Borrow fee uses APY as per-second rate, causing extreme overchargingInteger overflow/underflow$0
- Ammplify: DoS of pool if uniswapV3MintCallback's tokenAmountOwed is 0 for a `Revert on Zero Value Transfers` token.Logic error$0
- Ammplify: An attacker can block a user from opening new Maker/Taker positions by “donating” 16 unwanted Maker assets, saturating their asset quotaLogic error$0
- Ammplify: Uncollected fees from user's NFT position are stuck in `NFTManager` if `NFTManager.decomposeAndMint` function is usedLogic error$0
- Ammplify: Some legitimate `UniV3Decomposer` decompose attempts will always revert due to incorrect liquidity offset calculationLogic error$0
- Ammplify: incompatible library used for Fee on Transfer tokensLogic error$0
- Ammplify: Utilization Ratio Overflow Due to Incorrecte uint64 CastInteger overflow/underflow$0
- Ammplify: Incorrect inside fees calculation for uninitialized uniswap ticks causes positions funds being stuck in the contract and allows to steal all taker collateral and collected feesLogic error$0
- Ammplify: X/Y mix-up in ViewWalker.down will underreport X fees and block taker closesLogic error$0
- Ammplify: Shift-Overflow in getEquivalentLiq Inflates LP SharesInteger overflow/underflow$0
- Ammplify: Liquidity borrowed from or repaid to parent nodes is not always minted or burned in the uniswap pool, breaking up accounting and allowing to steal all protocol fundsLogic error$0
- Ammplify: `UniV3Decomposer` will always revert due to incorrect `RFTPayer` support and lack of token approvals to `MakerFacet`Logic error$0
- Ammplify: Takers pay significantly higher fees than expected due to borrow amounts being split across segmentsLogic error$0
- Ammplify: Makers can permanently lock JIT penalty revenue from the protocol treasuryLogic error$0
- Ammplify: adjustMaker ignores recipient parameter when removing liquidityLogic error$0
- Ammplify: `View::queryAssetBalances` does not account for JIT penaltiesLogic error$0
- Ammplify: Mismatch in actual pool's liquidity and pool node's liquidity infomation because of wrong `route` in `PoolWalker.settle`Logic error$0
- Ammplify: Pending Owner cannot accept ownership because of wrong implementation of `transferOwnership` and `acceptOwnership` functionsLogic error$0
- Ammplify: `ViewFacet.queryAssetBalances` doesn't unclude uncollected uniswap fees for compounded maker positionLogic error$0
- Ammplify: User can lose all funds when creating or increasing compounded Maker position due to share inflation first deposit attack in any segment of the user's rangeInteger overflow/underflow$0
- Ammplify: Wide cross-zero ranges revert (InvertedRange) due to sign-loss in tick→index and no wrap supportLogic error$0
- Ammplify: Can't remove compounding maker asset if any visit node in route has only liquidity for itLogic error$0
- Ammplify: Takers can pay significantly less fees with makers losing these amounts due to `subtreeBorrowedX` and `subtreeBorrowedY` being node's values instead of subtree'sLogic error$0
- BMX Deli Swap: Attacker can swap wBTC in the DeliHook multiples times to not pay / pay less swap feesInteger overflow/underflow$0
- BMX Deli Swap: Users always pay fee on the full swapped amount in the `DeliHook`, even if the swap is smallerLogic error$0
- BMX Deli Swap: `DeliHookConstantProduct` swapping `exactOutput` and `_feeFromOutput` is incorrectLogic error$0
- BMX Deli Swap: In the `IncentiveGauge._upsertIncentive()` function, `_updatePoolByPid()` should be called outside the `if` statementLogic error$0
- BMX Deli Swap: Unconditional lastUpdated advance in RangePool.sync leads to loss of streamed BMX when pool liquidity == 0Logic error$0
- BMX Deli Swap: Integer Truncation in Incentive Rate Permanently Locks Unstreamed RewardsLogic error$0
- BMX Deli Swap: Protocol fee conversion uses pre‑swap price snapshotLogic error$0
- BMX Deli Swap: Gas consumed in `notifyUnsubscribe` is underestimated during tests and is greater than 300,000 without pre-warmingLogic error$0
- BMX Deli Swap: Reward Token Loss for LPs During NFT Position TransferLogic error$0
- BMX Deli Swap: Users' voting weight can be double-counted when finalize epoch is processed in multiple stepsLogic error$0
- BMX Deli Swap: `Voter::finalize()` incorrect rewards distribution due to transfering WETH before calling `distributor::setTokensPerInterval()`Logic error$0
- BMX Deli Swap: DoSed `Voter::finalize()` due to unbounded pending removals lacking a batch argument variableLogic error$0
- USG - Tangent: Users can steal accumulated rewards when `totalCollateral` becomes zero due to incomplete state updatesLogic error$0
- USG - Tangent: No slippage check for liquidators when they burn USG from their account without Swapping first.Logic error$0
- USG - Tangent: `ZappingProxy` cannot receive ETH refunds resulting in failed zapsLogic error$0
- USG - Tangent: Lack of USDT support due to use of transferLogic error$0
- USG - Tangent: Edge-case USG prices will force reverts for functions relying on IRCalculatorLogic error$0
- USG - Tangent: Delayed Reward Cut Parameter Updates (Two-Cycle Enforcement Lag)Logic error$0
- USG - Tangent: Incorrect calls and Enforcements during Migration To a market.Logic error$0
- USG - Tangent: Liquidation Fee is incorrectly computedLogic error$0
- USG - Tangent: WStable 1:1 exit path will break with cooldown-enabled ERC4626 vaults like sUSDeLogic error$0
- Yield Basis: LiquidityGauge is not compliant with EIP-4626 due to MIN_SHARES constraintLogic error$0
- Yield Basis: Emergency withdrawal fails to update the guage when the contract is not killedLogic error$0
- Yield Basis: The incorrect initialize of `specific_emissions_per_gauge` in `GaugeController::add_gauge()`Governance attack$0
- Yield Basis: InflationaryVest.vy: Missing update of self.claimed allows infinite multiple claims by the recipientLogic error$0
- Neutrl Protocol: FULL_RESTRICTED_STAKER_ROLE Blacklist Bypass in Deposit and Mint FunctionsAccess control$0
- Malda: Migrator severily underestimates slippage by using underlying instead of sharesLogic error$0
- Malda: Unenforced maxFee and ttl Parameters in sendMsg FunctionBridge exploit$0
- Malda: ```WrapAndSupply::wrapAndSupplyOnExtensionMarket``` preventes users from supplying on hostLogic error$0
- Malda: If Across Bridging fails, all funds intended for bridging will become lockedBridge exploit$0
- Malda: Rebalancer can steal funds from markets by sending to custom receiver through Everclear BridgeBridge exploit$0
- Malda: MixedPriceOracleV4.sol :: getUnderlyingPrice()/getPirce() will not work for some tokens because API3 and EO oracles return prices using different decimals, causing DOS scenario.Logic error$0
- Malda: Blacklist can be completely bypassed on outHere endpoint in mTokenGatewayLogic error$0
- Malda: Wrong direction of rounding in redeem may lead to drain if exchange rate grows largeInteger overflow/underflow$0
- Malda: Rebalancer can send to unallowed destination chains through EverclearBridgeBridge exploit$0
- Malda: There is no endpoint for triggering `liquidateExternal` from extension chain to be executed by proof forwarderLogic error$0
- Malda: First depositor can brick market by forcing very large borrow rateLogic error$0
- Malda: Rebalancer can drain market funds via excessive bridge feesAccess control$0
- Malda: mErc20Host: It is not possible to permissionlessly call "external" endpoints when source chain is Eth mainnet, because l1Inclusion flag cannot be set to trueLogic error$0
- Oku Trade Order Types: Precision loss allows a mallicious user to drain amount received from ordersOracle manipulation$0
- Mellow Flexible Vaults: ETH redemptions via `SignatureRedeemQueue` are broken due to missing `receive` functionLogic error$0
- Mellow Flexible Vaults: RedeemQueue Accounting Mismatch Between Batch Creation and Claim EligibilityLogic error$0
- Mellow Flexible Vaults: Unable to withdraw native tokens because vault and redeem hooks do not handle native tokensLogic error$0
- Mellow Flexible Vaults: Malicious Users Can Perpetually Lock `feeRecipient` Shares via Targeted Lockup ResetLogic error$0
- Mellow Flexible Vaults: cancelDepositRequest() always reverts due to modifying FenwickTree with wrong indexLogic error$0
- Mellow Flexible Vaults: Flawed Logic in `ShareManager` Inverts Transfer Whitelist BehaviorLogic error$0
- Mellow Flexible Vaults: Protocol Fee Multiple Accrual in Oracle.submitReportsLogic error$0
- Mellow Flexible Vaults: Redeems through RedeemQueue avoid paying management and performance fee.Logic error$0
- Mellow Flexible Vaults: Targeted-lockup bypass: freshly minted shares can be transferred immediately in the same `transfer()` or `transferFrom()` callLogic error$0
- Mellow Flexible Vaults: Protocol Fee Exponential Compounding in ShareModule.handleReportLogic error$0
- Mellow Flexible Vaults: Stuck `stETH` rewards in queue contractsLogic error$0
- Mellow Flexible Vaults: DoS in Redemption Due to Unchecked Asset Support in SubvaultsLogic error$0
- Cap: Lender DoS if all asset is borrowed or realizedLogic error$0
- Cap: Cannot repay or liquidate on paused assetLogic error$0
- Cap: Utilization rate multiplier will not shift if oracle is consulted frequentlyOracle manipulation$0
- Cap: Restaker rewards on zero coverage agent will be stolen by subsequent restaker interest realizationLogic error$0
- Cap: VaultAdapter::multiplier not initialized can lead first borrows to have `utilizationRate` = 0Logic error$0
- Cap: Attacker/partial liquidator can extend Liquidation action by resetting $.liquidationStart[_agent] to 0.Logic error$0
- Cap: Missing slippage protection in liquidation allows unexpected collateral lossLogic error$0
- Notional Exponent: Funds stuck if one of the withdrawal requests cannot be finalizedLogic error$0
- Notional Exponent: Hardcoded `useEth = true` in `remove_liquidity_one_coin` or `remove_liquidity` lead to stuck fundLogic error$0
- Notional Exponent: `migrateRewardPool` Fails Due to Incompatible Storage Design in `CurveConvexLib`Logic error$0
- Notional Exponent: Malicious user can change the `TradeType` to steal funds from the vault or withdraw request managerLogic error$0
- Notional Exponent: Incorrect assumption that one (1) Pendle Standard Yield (SY) token is equal to one (1) Yield Token when computing the price in the oracleOracle manipulation$0
- Notional Exponent: Incorrect `tokensClaimed` calculation in `EthenaCooldownHolder::_finalizeCooldown()` blocks withdrawalsLogic error$0
- Notional Exponent: Rounding discrepancy between `MorphoLendingRouter::healthFactor` and `Morpho::repay` causes position migration failuresLogic error$0
- Notional Exponent: Attacker can drain the entire suppliers on Morpho market by inflating collateral priceOracle manipulation$0
- Notional Exponent: DoS might happen to `DineroWithdrawRequestManager#_initiateWithdrawImpl()` due to overflow on `++s_batchNonce`Integer overflow/underflow$0
- Notional Exponent: Users unable to claim rewards when Curve LP tokens are staked to Curve Gauge.Logic error$0
- Notional Exponent: Unable to support Curve Pool with Native ETHLogic error$0
- Notional Exponent: Hard-Coded Mainnet WETH Address Breaks All Non-Mainnet DeploymentsLogic error$0
- Notional Exponent: Missing Slippage Protection in Expired PT Redemption Causes User Fund LossFront-running / MEV$0
- Notional Exponent: Minting yield tokens single sided can be impossible if CURVE_V2 dexId is used on redemptionsLogic error$0
- Notional Exponent: Incorrect asset matching for ETH/WETH leads to potential DoS of exitPosition in CurveConvexStrategyLogic error$0
- Notional Exponent: Liquidations can be frontrunned to avoid by paying as little as 1 share.Logic error$0
- Notional Exponent: Single sided strategy cant do trades for ETH poolsLogic error$0
- Notional Exponent: Withdrawals ongoing for OETH, apxETH, weETH, and almost any LST are overpriced by the oracleLogic error$0
- Notional Exponent: Incompatibility of `ERC20::approve` function with USDT tokens on Ethereum Mainnet chainLogic error$0
- Notional Exponent: User unable to migrate under certain edge caseLogic error$0
- Notional Exponent: Emission rewards will keep accruing even the yield strategy is emptyLogic error$0
- Notional Exponent: Lack of minimum debt threshold enables unliquidatable small positionsLogic error$0
- Notional Exponent: Unable to deposit to Convex in ArbitrumLogic error$0
- Notional Exponent: OETH Strategy Broken as Rebasing Not EnabledLogic error$0
- Notional Exponent: `DineroWithdrawRequestManager` vulnerable to token overwithdrawal via batch ID overlapLogic error$0
- Notional Exponent: `initializeMarket` can be frontran, preventing markets from being configured in `MorphoLendingRouter `Logic error$0
- Symbiotic Relay: BlsBn254 is not available in certain chains due to hardcoded gas limitLogic error$0
- Symbiotic Relay: `autoDeployedVault` mapping is not updated after `unregisterOperatorVault`Logic error$0
- Symbiotic Relay: Enabling the whitelist can grant a malicious operator a temporary whitelisted statusAccess control$0
- Superfluid Locker System: Incorrect initial deposit calculation may cause cancelProgram to revertLogic error$0
- Superfluid Locker System: Staked tokens inside FluidLocker can be withdrawn without calling UnstakeLogic error$0
- Superfluid Locker System: User can instantly `unlock` most of his funds with less fee when he is unique `staker`/`liquidityProvider`Logic error$0
- Superfluid Locker System: Locker owners can leverage low liquidity pools to bypass the tax mechanismLogic error$0
- DODO Cross-Chain DEX: Attacker can steal an high-value token due to lack of swap executionBridge exploit$0
- DODO Cross-Chain DEX: `GatewayTransferNative.withdrawToNativeChain` Allows Swapping Arbitrary Contract ZRC20s by Misusing Deposited Token AmountLogic error$0
- DODO Cross-Chain DEX: Executing withdrawToNativeChain with Zeta as fromToken will not be possibleLogic error$0
- DODO Cross-Chain DEX: Improper ETH Refund Handling in GatewaySend.onRevert()Bridge exploit$0
- DODO Cross-Chain DEX: Wrong encoding of `BTC` receiver in revert optionsLogic error$0
- DODO Cross-Chain DEX: Any attacker will steal accumulated ZRC20 tokens from `GatewayTransferNative` contractLogic error$0
- DODO Cross-Chain DEX: Missing swap-withdrawal validation enables accumulated token drainageLogic error$0
- DODO Cross-Chain DEX: `onCall` function has missing fee deduction update prior swap.Logic error$0
- DODO Cross-Chain DEX: ETH Address Approval Attempt Causes All Zeta Swaps to RevertLogic error$0
- DODO Cross-Chain DEX: GatewayTransferNative does not collect platform fee when native asset is bridgedBridge exploit$0
- Usual ETH0: Lack of on-chain deviation check for LST can lead to loss of assetsOracle manipulation$0
- LEND: Incorrect LEND reward distribution for cross-chain borrowsLogic error$0
- LEND: Transfers will fail when using USDTLogic error$0
- LEND: The liquidation validation logic is wrongLogic error$0
- LEND: `CoreRouter.sol`’s `repayBorrowInternal` incorrectly updates `same chain` borrow balances on `cross chain` repaymentsLogic error$0
- LEND: Multiple Cross-Chain borrows using same collateralLogic error$0
- LEND: Cross-chain borrow ignores existing debt in collateral validationLogic error$0
- LEND: Cross-chain collaterals are wrongly calculated in the borrowWithInterest functionLogic error$0
- LEND: User can redeem collateral immediately after initiating the borrow, leading undercollateralization.Logic error$0
- LEND: Cross-chain liquidation uses incorrect lToken address, preventing repayment and breaking liquidation flowLogic error$0
- LEND: Incorrect Debt Tracking in `_updateRepaymentState`Logic error$0
- LEND: Subsequent Cross‐Chain Borrows don’t Accrue interest on existing principal when borrowing the same AssetLogic error$0
- LEND: Borrower will loose funds if their repay transaction executes after cross-chain liquidation callLogic error$0
- LEND: Drainage of the LEND token reserves through repeated claims of the same rewardsLogic error$0
- LEND: Incorrect Collateral Check Logic in CoreRouter.sol#borrow()Logic error$0
- LEND: wrong calculation of amount of Ltokens to seize in liquidateCrossChain functionLogic error$0
- LEND: Protocol rewards tokens permanently stuckLogic error$0
- LEND: Liquidators Must Supply Collateral Asset Before Redeeming Seized RewardsLogic error$0
- LEND: Cross-Chain liquidation uses collateral seize amount instead of repayment amount for debt reductionLogic error$0
- LEND: User may not be able to borrow even if they provide sufficient collateralsLogic error$0
- LayerEdge - Staking: When `stakerCountInTree` Increases, Some Users May Receive Less InterestLogic error$0
- Yearn yBOLD: A malicious attacker can steal 25% of the funds of the first depositor in a strategyFront-running / MEV$0
- LayerEdge - Staking: stakerTierHistory is an unbound array that can be extended such that a user's funds are permamently lostLogic error$0
- ZetaChain Cross-Chain: EVM outbound transaction gas limit can be set lower than the intrinsic gas limit, which prevents sending the transaction and blocks all other outbound transactions to this chainLogic error$0
- ZetaChain Cross-Chain: Insufficient Transaction Broadcast Timeout in EVM ChainsLogic error$0
- ZetaChain Cross-Chain: Lost funds on ZetaChain due to unprocessed ZEVM logsLogic error$0
- ZetaChain Cross-Chain: Incorrect de-structuring of parse_intent()'s return value will trigger unexpected operationsLogic error$0
- ZetaChain Cross-Chain: TON Gateway transactions with a skipped compute phase will cause a panicLogic error$0
- ZetaChain Cross-Chain: Impartially aborted CCTXs are incorrectly marked as refunded, resulting in a loss of fundsLogic error$0
- Burve: Incorrect handling of ERC4626 vaults with feesLogic error$0
- Burve: User can backrun an admin calling `setEX128` and steal the difference in tokensLogic error$0
- Burve: Protocol fee resides in the diamond contract can be wrongly sent to users if the underlying vault temporarily disables withdrawalLogic error$0
- Burve: Incorrect implementation of `ERC4626ViewAdjustor`Logic error$0
- Burve: Incorrect earnings calculation in `removeValueSingle()` function causes partial user lossesLogic error$0
- Burve: Reserve Share Overflows Due to Too Strict Reward Calculation MechanismInteger overflow/underflow$0
- Burve: Simplex ownership cannot be transferredLogic error$0
- Burve: Attacker captures unclaimed fees by timing deposit with range re-entry and price manipulationLogic error$0
- Burve: The value of each closure is not the same, and the same ValueToken cannot be used for all cidsLogic error$0
- Burve: Incorrect tax distribution when adding value single-sidedReentrancy$0
- Burve: Incorrect Netting Logic Leads to Excessive Withdrawal AmountsLogic error$0
- Burve: An attacker can drain assets from a Closure by exploiting the NoopVault via a donation attackFront-running / MEV$0
- Aegis.im YUSD: Insolvency as `YUSD` will depeg overtime as the redemption fees are disbursed with no collaterals backing them.Logic error$0
- Aegis.im YUSD: A whale adversary can grief the redeem functionality through redeem limit consumptionLogic error$0
- Pareto USP, a credit-backed synthetic dollar: theft of funds for new depositers if sUSP can not absorb entire lossesLogic error$0
- Crestal Network: Signature Replay attack possible on `updateWorkerDeploymentConfigWithSig()` in Blueprintcore.sol which leads to users lose the fundsSignature replay$0
- Crestal Network: Lack of access control in `setWorkerPublicKey()` in BlueprintCore.sol which results users to lose fundsAccess control$0
- Crestal Network: Anyone who is approving `BlueprintV5` contract to spend ERC20 can get drained because `Payment::payWithERC20`Access control$0
- Symmio, Staking and Vesting: USDC rewards will not be distributed if `_updateRewardsStates` is triggered too oftenOracle manipulation$0
- SEDA Protocol: Attackers can flood solvers with thousands of requests and prevent fee payoutsLogic error$0
- Symmio, Staking and Vesting: Malicious User can dilute staking Rewards to a longer timeframeLogic error$0
- SEDA Protocol: Attacker can exploits batch sender role to block result Submissions via fee transfer reversionLogic error$0
- SEDA Protocol: requestId has no unique parameters leading to different collisionsLogic error$0
- SEDA Protocol: Malicious validators will bypass consensus threshold requirements affecting the integrity of the SEDA protocol's cross-chain data verification systemLogic error$0
- Yieldoor: `Vault::_calcDeposit()` will overflow for low priced tokensInteger overflow/underflow$0
- Yieldoor: Strategy main ticks are not symmetric when the tick spacing is one due to incorrect isLowerSided inequalityLogic error$0
- Yieldoor: `Vault::withdraw()` withdraws too much liquidity leading to idle capital and loss of feesLogic error$0
- Yieldoor: `Strategy::checkPoolActivity()` does not look as far back as it shouldLogic error$0
- Yieldoor: Locked funds due to underflow in withdrawalLogic error$0
- Yieldoor: Liquidation fee will not be claimed due to incorrect decimal handlingLogic error$0
- Yieldoor: Integer overflow in observation index calculation leads to denial of serviceInteger overflow/underflow$0
- Yieldoor: `Strategy::checkPoolActivity()` incorrect check leads to vulnerable priceOracle manipulation$0
- Yieldoor: `Leverager::deposit`, does not support multi-hop swaps with `exactOutput`Logic error$0
- Yieldoor: Incorrect modulo calculation in secondary position ticks leads to active position and division by zeroLogic error$0
- Yieldoor: Incorrect tick parameter in collectFees() function leads to loss of vesting position fees or possible complete protocol lockupLogic error$0
- Yieldoor: Strategy main ticks are set according to the tick in slot0, leading to incorrect allocation and loss of fundsLogic error$0
- Nibiru: `IOracle.queryExchangeRate` returns incorrect `blockTimeMs`Oracle manipulation$0
- Nibiru: Double fee application breaks supply invariant for fee-on-transfer ERC20sLogic error$0
- Nibiru: ERC20 transfer fails with non-compliant tokens missing return valuesLogic error$0
- Chakra: Invalid token address used in `ChakraSettlementHandler::cross_chain_erc20_settlement(...)` leading to invalid transaction creation and event emissionBridge exploit$0
- Chakra: SettlementSignatureVerifier's `required_validators` is not updated, resulting in a low or high number of signatures being requiredLogic error$0
- Chakra: Malicious actors can manipulate the `cross_chain_callback` callbackFront-running / MEV$0
- Chakra: `ChakraSettlement.receive_cross_chain_msg` and `ChakraSettlement.receive_cross_chain_callback` functions do not ensure that receiving `ChakraSettlement` contract's `contract_chain_name` must match `to_chain` corresponding to respective `txi…Signature replay$0
- Chakra: The `LockMint` and `BurnUnlock` modes cannot be usedBridge exploit$0
- Chakra: Does not check if `to_chain` and `to_handler` is whitelisted in `cross_chain_erc20_settlement`Bridge exploit$0
- Chakra: `SettlementSignatureVerifier` is missing check for duplicate validator signaturesLogic error$0
- Chakra: Anyone can manipulate user nonce (`nonce_manager`) in settlement contractAccess control$0
- Chakra: There is no refund mechanism in `ChakraSettlement.processCrossChainCallback` or `ChakraSettlementHandler.receive_cross_chain_callback` functionAccess control$0
- Chakra: Missing `ERC20Method` validation at destination allows non-transfer tx to be handled as transfersLogic error$0
- Rova: `maxTokenAmountPerUser` limit can be bypassed when currency token has less decimals than the launch token.Logic error$0
- Rova: `userTokens` accounting in `Launch.sol::updateParticipation` is updated incorrectly and can lead to loss of user funds, DOS and a broken invariantLogic error$0
- Rubicon: Rewards for initial period may be lost in `BathBuddy` contractLogic error$0
- LoopFi: Debt position interest is compounded while pool interest is simple causing inconsistency between `expectedLiquidity_` and `availableLiquidity_`Logic error$0
- LoopFi: `PositionAction.sol#onCreditFlashLoan` may end up with stuck funds for `EXACT_IN` primary swapsFlash loan attack$0
- Rubicon: Wrong calculation of repayment amount in Position contractLogic error$0
- Rubicon: When opening a position, the collateral of the previous position is used for borrowing, which makes the user more easily liquidatedLogic error$0
- NOYA: A Vault can steal all funds from another Vault through the Registry's flash loan contract due to insufficient access control in `Connector.sendTokensToTrustedAddress()`Flash loan attack$0
- Rubicon: `Position` contract allows to interact with positions that are liquidatedLogic error$0
- LoopFi: Liquidation doesn't account for penalty when calculating collateral to give, allowing users to profit by borrowing and self-liquidatingLogic error$0
- Peapods: hardcoded V3_POS_MGR address won't be the same on every chainLogic error$0
- Rubicon: DOS of market operations with malicious offersLogic error$0
- Peapods: LeverageManager removeLeverage does not support advanced self-lending pods with podded fTKN as pairedLpTKN.Logic error$0
- Peapods: `addInterest` will not update the interest acurately which would enable users to claim rewards for time that they weren't staked inside `LendingAssetVault`Logic error$0
- Rubicon: The return value of `buyAllAmount` is incorrectLogic error$0
- Peapods: Zapper `_swapV3Single()` has multiple integration issues with V3 swap.Logic error$0
- Peapods: AutoCompoundingPodLp `_pairedLpTokenToPodLp()` does not correctly handle leftover pTKNs.Logic error$0
- Rubicon: Incorrect fee handling in `Position.sol's` Market `Buy`/`Sell` functionsLogic error$0
- Rubicon: `FeeWrapper` fails to handle ETH payment refundsLogic error$0
- LoopFi: Usage of `lastEligibleStatus` can cause user to miss out on rewards on `manualStopEmissionsFor` invocationLogic error$0
- LoopFi: Bug in `claim` allows users who are disqualified to claim their previously earned emissionsLogic error$0
- Rubicon: First depositor bug on unmodified Compound forkFront-running / MEV$0
- LoopFi: Directly sending dust token amount will slow down distribution in `MultiFeeDistribution.sol`Logic error$0
- Peapods: MEV bots will steal from users due to an incorrectly manipulated valueFront-running / MEV$0
- LoopFi: An infinite loop in `MultiFeeDistribution.sol` withdrawLogic error$0
- Peapods: spTKNMinimalOracle `_calculateSpTknPerBase()` does not calculate correct price for podded or fraxlend pair pairedLpTKNs.Oracle manipulation$0
- NOYA: `executeWithdraw` may be blocked if any of the users are blacklisted from the `baseToken`Logic error$0
- Rubicon: Due to the loss of precision, `openPosition` will make the user's leverage higher than expectedInteger overflow/underflow$0
- LoopFi: DOS attack to `SwapAction.transferAndSwap()` when using an ERC20 permit `transferFrom`Logic error$0
- Peapods: Open fee is overcharged in `_addLeveragePostCallback` functionLogic error$0
- Rubicon: Calling `Position._marketSell` function compares `fill_amt` that includes fee to `min_fill_amount` that does not include feeLogic error$0
- LoopFi: Because of the asset: `Share 1:1 Conversion`, if vault incurs a loss, the last user to withdraw will take the entire lossLogic error$0
- Rubicon: No deadline parameter in `sellAllAmount()` and `buyAllAmount()` functions:Front-running / MEV$0
- LoopFi: `AuraVault::claim` reward calculation does not deduct fees from reward amount, causing DoS or extra rewards lostLogic error$0
- NOYA: Incomplete TVL Calculation in `AerodromeConnector::_getPositionTVL` FunctionLogic error$0
- NOYA: `NoyaValueOracle.getValue` returns an incorrect price when a multi-token route is usedOracle manipulation$0
- Rubicon: Both buyAllAmountWithLeverage and sellAllAmountWithLeverage always revertLogic error$0
- NOYA: Base tokens like USDT, USDC having different decimals on different chains can have their TVL updated incorrectlyLogic error$0
- NOYA: In Dolomite, when opening a borrow position, the holding position in the Registry will never be updated due to the `removePosition` flag being set to trueLogic error$0
- NOYA: `_getPositionTVL` of `UNIv3Connector` wrongly assumes ownership of all liquidity of the provided ticks inside `positionManager`Oracle manipulation$0
- Peapods: Improper Handling of Paused Tokens in `TokenRewards._resetExcluded()` FunctionLogic error$0
- LoopFi: Users of a vault can steal other user's rewards when one vault's `lastRewardTime` differs from another vault's `lastRewardTime`Logic error$0
- LoopFi: Emission schedule is not followed and can cause unexpected allocation of rewardsLogic error$0
- LoopFi: `PositionAction.decreaseLever()` fails to consider the loan fee in Flashlender when calculating `loanAmount`, as a result, the functionality will not work when `protocolFee != 0`Logic error$0
- Rubicon: User can possess less value than before when `V2Migrator.migrate` function is called to give up `bathTokenV1` tokens and hold `bathTokenV2` tokensLogic error$0
- LoopFi: `SwapAction.sol#balancerSwap` does not support native ETH as input tokenLogic error$0
- LoopFi: Malicious actor can abuse the minimum shares check in `StakingLPEth` and cause DoS or locked funds for the last user that withdrawsLogic error$0
- Rubicon: `Position._borrowLimit` doesn't use exisiting collateral in case if user doesn't have any `_bathToken`Logic error$0
- Peapods: LeverageManager closeFee is only collected for pTKN, which can be easily bypassed.Logic error$0
- Rubicon: The ````_matcho()```` is not implemented properlyLogic error$0
- Rubicon: `RubiconMarket: buy()` may not take any fee for tokens with low decimal precisionLogic error$0
- NOYA: Value of asset token can be incorrect when usage of ETH/USD Chainlink oracle is neededOracle manipulation$0
- NOYA: Decreasing a position in PendleConnector will remove it even if there's still a stake at PenpieLogic error$0
- LoopFi: Unclaimed rewards handling issue in `AuraVault` contract functions (`AuraVault::deposit`, `AuraVault::mint`, `AuraVault::withdraw` and `AuraVault::redeem`)Logic error$0
- Peapods: LendingAssetVault should also call `_updateInterestAndMdInAllVaults()` in multiple functions.Logic error$0
- Peapods: Liquidations will revert incorrectly due to an out-of-sync leftover collateral valueLogic error$0
- LoopFi: Lack of slippage check while interacting with ERC4626 Vault in `PositionAction4626` could lead to users' fund lossLogic error$0
- Rubicon: Calling `ExpiringMarket.stop` and `ExpiringMarket.isClosed` functions cannot pause any functionlities of the marketLogic error$0
- Rubicon: `RubiconMarket._buys` will not work for V1 offers due to the reversion in `cancel` method.Logic error$0
- LoopFi: `INFLATION_PROTECTION_TIME` can not be up to a year as intended because it is hardcoded to `1749120350`Logic error$0
- LoopFi: `vestTokens` bug in `MultiFeeDistribution.sol` causes new incentives to erase previous incentivesLogic error$0
- LoopFi: `PositionAction.sol#_deposit` incorrectly checks `auxSwap.assetIn` should be equal to `collateralParams.targetToken`Logic error$0
- Rubicon: Missing a check for minimum sell amount at the `make` functionLogic error$0
- Rubicon: Position doesn't distribute rewards to usersLogic error$0
- Rubicon: An attacker can steal all tokens of users that use `FeeWrapper`Logic error$0
- Peapods: LendingAssetVault incorrectly updates vaultUtilization if CBR for a single FraxlendPair decreases.Logic error$0
- NOYA: `PrismaConnector` can mint a position below the desired health factorLogic error$0
- LoopFi: Honest users could be permanently DOS'd from withdrawing their vested tokens/rewardsAccess control$0
- Rubicon: RubiconMarket `batchOffer` and `batchRequote` make offers as self; complete loss of funds for some types of tokens, for example WETHLogic error$0
- Peapods: `spTKNMinimalOracle.sol` counts debond fee twice, which will make the end price (spTKN per base) higher than it should beOracle manipulation$0
- Rubicon: Incorrect calculations can occur when calling `Position._marketBuy` and `Position._marketSell` functions that do not include maker fee in `_fee`Logic error$0
- Rubicon: The curve of short leverage position is not smooth and may cause users to open positions that are different from expectationsLogic error$0
- LoopFi: Invalid handling of flash loan fees in `PositionAction::onCreditFlashLoan`, forcing it to always revertFlash loan attack$0
- LoopFi: `PositionAction4626::increaseLever` will always revertLogic error$0
- Peapods: Pod DoS if the LEAVE_AS_PAIRED_LP_TOKEN option is enabledLogic error$0
- LoopFi: Zero rates on new quoted tokens allow an attacker to take an interest free quotaLogic error$0
- LoopFi: Malicious borrower cycle exploits to inflate interest ratesLogic error$0
- LoopFi: `decreaseLever` uses incorrect position address when withdrawingFlash loan attack$0
- Peapods: Transaction may revert unexpectedly due to missing allowance for the lending pair assetLogic error$0
- LoopFi: `CDPVault.sol#liquidatePositionBadDebt()` doesn't correctly handle profit and lossLogic error$0
- LoopFi: In `PositionActionPendle::_onDecreaseLever`, `tokenOut` is implemented incorrectlyLogic error$0
- Rubicon: Zero reward rate calculation impedes low-decimals token distributionsLogic error$0
- Peapods: `_protocolFees` can be applied multiple times in `AutoCompoundingPodLp` contractLogic error$0
- LoopFi: Invalid handling of risdual amount in `PositionAction::onCreditFlashLoan`, forcing it to revertFlash loan attack$0
- LoopFi: `PositionAction4626::_onDecreaseLever` wrongly updates `tokenOut` forcing user's funds to be stuck in the position action contractLogic error$0
- Rubicon: Use of `block.number` leads to incorrect interest calculationsLogic error$0
- Rubicon: Attack on rounding errors to get risk free profitInteger overflow/underflow$0
- Rubicon: Potential infinite loop in `_borrowLimit` functionLogic error$0
- LoopFi: `PositionAction20._onWithdraw` and `PositionPendle20._onWithdraw` also returns token amount in wrong scaleLogic error$0
- LoopFi: Bringing a position from unsafe to safe by liquidation partiallyLogic error$0
- Rubicon: REENTRANCY ATTACK POSSIBLE IF THE `_feeTo` IS A MALICIOUS CONTRACT IN `FeeWrapper._chargeFeePayable()` FUNCTIONReentrancy$0
- Peapods: Vault inflation attack in `AutoCompoundingPodLp` is possible due to incorrectly minting dead sharesLogic error$0
- Rubicon: Users might get less assets than expected upon migration due to price manipulation attacksOracle manipulation$0
- NOYA: Invalid calculation of position TVL in Pendle connectorLogic error$0
- LoopFi: It is nearly impossble for Liquidators to use `liquidatePosition()` to fully pay off a non bad-debt positionLogic error$0
- Rubicon: A liquidated position possibly cannot be closedLogic error$0
- Peapods: Incorrect `minAnswer` check doesn't protect the protocol from massive price dropsOracle manipulation$0
- Rubicon: The last borrowed asset will not be collateralized and the user may be liquidated due to insufficient collateralLogic error$0
- LoopFi: `PoolAction::_balancerExit` returns wrong token out amountLogic error$0
- LoopFi: `CDPVault.sol#liquidatePositionBadDebt()` should not set profit `= 0` when calling `pool.repayCreditAccount()`Reentrancy$0
- LoopFi: Lack of Slippage Control in `AuraVault::deposit` and `AuraVault::mint` Functions Can Lead to Unexpected Financial Losses for UsersLogic error$0
- Rubicon: Some offers can't be cancelledLogic error$0
- Rubicon: Fee inclusivity calculations are inaccurate in `RubiconMarket`Logic error$0
- LoopFi: Rewards may be spread out among the wrong time period due to the way the protocol calculates itLogic error$0
- LoopFi: `WhenNotPaused` modifier in the CDPVault can be bypassed by usersAccess control$0
- Rubicon: `RubiconMarket` checks slippage incorrectlyLogic error$0
- LoopFi: Malicious borrower can evade full liquidation in `CDPVault::liquidatePosition` by repaying small amounts of debtLogic error$0
- NOYA: Numerous errors when calculating the TVL for the MorphoBlue connectorLogic error$0
- LoopFi: `SwapAction::getSwapToken` will return wrong swap token for balancer `EXACT_OUT` swapsLogic error$0
- Rubicon: Reward accounting is incorrect in `BathBuddy` contractLogic error$0
- LoopFi: `CDPVault.liquidatePosition()` does not scale `takeCollateral` with `tokenScale`; therefore, it might send the wrong amount of collateral to the liquidator when `tokenScale ! = 1 ether`Logic error$0
- NOYA: `AccountingManager::resetMiddle` will not behave as expectedLogic error$0
- LoopFi: Discrepancy between the `lastRewadTime` and the `lastAllPoolUpdate` can allow for incorrect reward distribution to pools if `registerRewardDeposit` deposits less assetsLogic error$0
- NOYA: SiloConnector `_getPositionTVL` miscalculate the TVL positionLogic error$0
- Rubicon: An attacker can steal all `RubiconRouter` fundsLogic error$0
- LoopFi: Incorrect calculation of `newCumulativeIndex` in function `calcDecrease`Logic error$0
- LoopFi: Rewards might be lost due to the error that `_updateRewardIndex()` might advance `lastBalance` without advancing index for a tokenInteger overflow/underflow$0
- NOYA: `SNXConnector.sol` TVL calculation is incorrectLogic error$0
- NOYA: `Registry.sol#updateHoldingPosition` remove position logic is incorrect: should use `ownerConnector` instead of `calculatorConnector` when calculating `holdingPositionId`Logic error$0
- NOYA: `BalancerConnector` has incorrect implementation of totalSupply, positionTVL and total TVL will be invalidLogic error$0
- Rubicon: Low level calls to accounts with no code will succeed in `FeeWrapper`Logic error$0
- NOYA: Invalid handling of holding positions in `DolomiteConnector::transferBetweenAccounts`Logic error$0
- Rubicon: Cannot close leveraged positionsLogic error$0
- NOYA: `BalancerConnector::_getPositionTVL` is calculated incorrectlyLogic error$0
- LoopFi: Wrong repayment amount used in `PositionAction::_repay`, forcing users to unexpectedly lose fundsLogic error$0
- LoopFi: `PositionAction.sol#onCreditFlashLoan` may have leftover tokens after conducting `leverParams.auxSwap`Logic error$0
- Peapods: Malicious liquidator can intentionally leave dust amount of collateral and won't trigger bad debt handlingLogic error$0
- LoopFi: `Flashlender.sol#flashLoan()` should use `mintProfit()` to mint fees, as the current implementation may lead to locked up WETH in PoolV3Logic error$0
- Rubicon: Calling `Position._marketBuy` and `Position._marketSell` functions that calculate `_fee` by dividing by `10000` can cause incorrect calculationsLogic error$0
- LoopFi: Incorrect address is used as `spender` for ERC20 permit signature verificationLogic error$0
- Peapods: The amount of shares needed for redemption of borrow tokens is underquoted during the removal of leverage process leading to reverting.Logic error$0
- NOYA: `PendleConnector` incorrectly sends the redeemed `PT` tokens to the marketLogic error$0
- NOYA: It is possible to open insolvent position in Silo connector, due to missing check in borrow functionLogic error$0
- Peapods: `PodUnwrapLocker` can be drained due to an arbitrary inputLogic error$0
- Peapods: Malicious actors can front-run setYieldConvEnabledFront-running / MEV$0
- LoopFi: `PositionActionPendle.sol#_onWithdraw` does not have slippage parameter `minOut` setLogic error$0
- LoopFi: ChefIncentivesController caches `endRewardTime`, which is not required, and may cause issues during reward updateLogic error$0
- Rubicon: Some positions will get liquidated immediatelyLogic error$0
- Perennial V2 Update #4: When account is liquidated (protected), liquidator can increase account's position to any value up to `2**62 - 1` breaking all market accounting and stealing all market funds.Logic error$0
- Perennial V2 Update #4: Some accounts using Intents to trade might be liquidated while healthy or be unliquidatable while being unhealthy.Logic error$0
- Perennial V2 Update #4: Anyone can steal all funds from the `market` due to incorrect health accounting for pending pnl from difference of intent price and market price when multiple intents are used.Logic error$0
- Perennial V2 Update #4: Vault.settle(account=coordinator) will lose profitSharesLogic error$0
- Perennial V2 Update #4: Intent orders are guaranteed to execute, but fees from these orders are not accounted in collateral, allowing user to withdraw all collateral ignoring these pending fees.Logic error$0
- Perennial V2 Update #4: `InvariantLib` uses current position for margin check allowing to withdraw collateral while the position decrease is only pending and can cause unexpected immediate user liquidation.Logic error$0
- Perennial V2 Update #4: Liquidations are temporarily blocked if user's pending position close amount is greater than the latest position size.Logic error$0
- Axelar Network: Can block bridge or limit the bridgeable amount by initializing the ITSHub balance of the original chainLogic error$0
- Plaza Finance: The state variable `BondToken.globalPool` is updated incorrectly via `Pool.startAuction()`Logic error$0
- Plaza Finance: Malicious user can leverage flash loans to claim all coupon rewardsFlash loan attack$0
- Plaza Finance: Market rate never used due to decimal discrepancyLogic error$0
- Plaza Finance: levETH Cannot Be Bought.Logic error$0
- Plaza Finance: Low TVL and high Leverage Supply will DoS the redeem of Leverage tokensLogic error$0
- Plaza Finance: Anyone Can Get Funds From This Contract.Logic error$0
- Plaza Finance: Approval overflow causes DoS in `BalancerRouter`'s `exitPlazaAndBalancer`Integer overflow/underflow$0
- Plaza Finance: Users can sell `BondToken` at a higher price by manipulating the `collateralLevel` from `< 120%` to `> 120%` by purchasing `LeverageToken`.Logic error$0
- Plaza Finance: Incorrect LevETH Redeem Rate Due to BondETH Market Rate and LevETH Rate Comparison, Leading to Trader LossesLogic error$0
- Plaza Finance: Calling the transferReserveToAuction will revert due to increase in currentPeriodLogic error$0
- Plaza Finance: Funds might remain locked in `BalancerRouter` when depositing in Balancer poolLogic error$0
- Plaza Finance: Auction date will drift irreversibly forward over time leading to loss of yield for bond holdersLogic error$0
- Plaza Finance: Protocol mechanics incorrectly assume 1 USDC will always be worth 1 USDLogic error$0
- Plaza Finance: BondOracleAdapter can fetch price from inefficient Pool on AerodromeOracle manipulation$0
- Plaza Finance: Fee is charged current reserveToken pool balance to time which is not updatedLogic error$0
- Plaza Finance: Auctions succeeding condition does not take into account the claimable fees in the pool. It can result of a drastical reduction of claimable fees if auction succeeds, or cause an auction to fail if the fees are claimedLogic error$0
- Plaza Finance: Incorrect price representationLogic error$0
- Plaza Finance: `COLLATERAL_THRESHOLD` should be set to `125%` instead of `120%`.Logic error$0
- Plaza Finance: BalancerRouter is implemented incorrectly and will cause loss of funds when depositing to predepositsLogic error$0
- Plaza Finance: Rounding loss in Auction#slotSize allows malicious user to force auction to be undersoldInteger overflow/underflow$0
- Plaza Finance: Wrong modifier on `PreDeposit::setBondAndLeverageAmount` function leads to big differences in user balancesLogic error$0
- Plaza Finance: BondOracleAdapter will cause massive loss of funds for a large number of bond tokensOracle manipulation$0
- Plaza Finance: User may lose funds if they call `BalancerRouter::joinBalancerAndPredeposit`Logic error$0
- Plaza Finance: Attacker can drain most of the reserves by weaponizing USDC blacklistingLogic error$0
- Superposition: It's still not possible to set pool's protocol feesAccess control$0
- Superposition: `createPoolD650E2D0` will not work due to mismatch in solidity and stylus function definitionsLogic error$0
- Superposition: No slippage control when withdrawing a position leads to loss of fundsFront-running / MEV$0
- Superposition: Users are incorrectly refunded when liquidity is insufficientLogic error$0
- Autonomint Colored Dollar V1: Cross-Contract Reentrancy Vulnerability in CDS Withdraw FunctionReentrancy$0
- Autonomint Colored Dollar V1: No slippage protection when exchanging with synthethixLogic error$0
- Autonomint Colored Dollar V1: `Treasury.noOfBorrowers` can be set to 0 by looping wei deposit<->withdrawals and DoS withdrawals and reset borrower debtLogic error$0
- Autonomint Colored Dollar V1: Cross-chain wrsETH amount is wrapped before the treasury have received it, which could revert the whole transactionLogic error$0
- Autonomint Colored Dollar V1: Wrong state update in `liquidationType1` callLogic error$0
- Autonomint Colored Dollar V1: Total cds deposited amount is incorrectly modified when cds depositor is at a loss, leading to stuck USDaInteger overflow/underflow$0
- Autonomint Colored Dollar V1: The user overpays the USDA amount for downside protection while withdrawingLogic error$0
- Autonomint Colored Dollar V1: Type 1 borrower liquidation will incorrectly add cds profit directly to `totalCdsDepositedAmount`Logic error$0
- Autonomint Colored Dollar V1: After closing synthetix position we don't update global data for liquidationsLogic error$0
- Autonomint Colored Dollar V1: DOS on liquidation type 1 due to underflow in cds profits computationLogic error$0
- Autonomint Colored Dollar V1: wrong amount of `sUSD` is used to open a short position in synthetixLogic error$0
- Autonomint Colored Dollar V1: Malicious users can DOS the protocol by setting downsideProtected to a large valueLogic error$0
- Autonomint Colored Dollar V1: `Borrowing::redeemYields` debits `ABOND` from `msg.sender` but redeems to `user` using `ABOND.State` data from `user`Logic error$0
- Autonomint Colored Dollar V1: Reentrant call in `Treasury::withdrawFromExternalProtocol` during the `Borrowing::redeemYields` flow allows theft of `Treasury` ETHReentrancy$0
- Autonomint Colored Dollar V1: odosAssembledData can be manipulatedLogic error$0
- Autonomint Colored Dollar V1: `borrowing::withdraw()` at a loss will increase downside protected and misscalculate option feesLogic error$0
- Autonomint Colored Dollar V1: omniChainData.cdsPoolValue is not decreased/updated in the function liquidationType1,as a result cds/ borrow ratio will be bigger than expected.Logic error$0
- Autonomint Colored Dollar V1: Withdrawing ionic during liquidation has a flawLogic error$0
- Autonomint Colored Dollar V1: Lock-in period option for dCDS users is not enforced when trying to withdraw.Logic error$0
- Autonomint Colored Dollar V1: Inability to Withdraw ETH/tokens in BorrowLiquidation Contract if `closeThePositionInSynthetix` is CalledLogic error$0
- Autonomint Colored Dollar V1: excess funds will not always be refunded to borrower when they are withdrawingLogic error$0
- Autonomint Colored Dollar V1: `liquidationType2` will self DOS due to lack of ETHLogic error$0
- Autonomint Colored Dollar V1: Missing Update to `omnichain.totalAvailableLiquidationAmount` in `withdrawUser`Logic error$0
- Autonomint Colored Dollar V1: Malicious users can block admins from accessing setter functionsAccess control$0
- Autonomint Colored Dollar V1: Borrower withdrawing at a loss will cause losses for cds depositors that only withdraw after the price recoversLogic error$0
- Autonomint Colored Dollar V1: `totalCdsDepositedAmountWithOptionFees` is incorrectly reduced in `CDSLib::withdrawUser()`, leading to stuck option feesLogic error$0
- Autonomint Colored Dollar V1: Logical Error in Timestamp Condition for Option Renewal `BorrowLib.getOptionFeesToPay()`Logic error$0
- Autonomint Colored Dollar V1: Missing cds deposit amount in swapCollateralForUSDTLogic error$0
- Autonomint Colored Dollar V1: Health ratio is hardcoded causing issues once the LTV is updatedLogic error$0
- Autonomint Colored Dollar V1: when the liquidate function(function liquidationType1) is called vaultvalue(liquidated collateral value) is not decreased from omniChainData.vaultValue. As a result, the cds/borrow ratio will always be less than the real cds/borrow ratio.Logic error$0
- Autonomint Colored Dollar V1: Borrowers can choose any volatility in order to pay less feesLogic error$0
- Autonomint Colored Dollar V1: Protected downside is not updated when `cds.getTotalCdsDepositedAmount() < downsideProtected`Logic error$0
- Autonomint Colored Dollar V1: Cds amounts to reduce from each chain are incorrect and will lead to the inability to withdraw cds in one of the chainsLogic error$0
- Autonomint Colored Dollar V1: `borrowing::liquidate()` sends the wrong liquidation index to the destination chain, overwritting liquidation information and getting collateral stuckLogic error$0
- Autonomint Colored Dollar V1: Liquidation will reduce total cds deposited amount, leading to incorrect option feesLogic error$0
- Autonomint Colored Dollar V1: Inconsistent Use of `lastCumulativeRate` in `depositTokens()` and `withdraw()` Functions in `Borrowings` ContractLogic error$0
- Autonomint Colored Dollar V1: Users can withdraw liquidated collateralLogic error$0
- Autonomint Colored Dollar V1: Lack of lastEthPrice sync between different chainsLogic error$0
- Autonomint Colored Dollar V1: `ABONDToken::transferFrom` does not work as intended and allows theft of ETH funds from `Treasury`Logic error$0
- Autonomint Colored Dollar V1: DOS to `liquidateBorrowPosition` on MODE chainLogic error$0
- MachFi: Missing staleness check in PythOracle can lead to forced liquidations and theft of funds from borrowers.Logic error$0
- Kakarot: No way to cancel `l1 -< l2` messagesLogic error$0
- Teller Lender Groups Update Audit: ERC20.approve Used Instead of Safe Approvals, Causing Pool Failures with Some ERC20sReentrancy$0
- Teller Lender Groups Update Audit: Lender group members can be prevented from burning their shares foreverLogic error$0
- Teller Lender Groups Update Audit: Not updating state before making custom external call can cause borrower's to loose assets due to re-entrancyReentrancy$0
- Teller Lender Groups Update Audit: Users can lower the interest rate by dividing a loan into multiple smaller loansLogic error$0
- Teller Lender Groups Update Audit: Repayer can brick lending functionality of `LenderCommitmentGroup_Smart` by repaying excessInteger overflow/underflow$0
- Oku's New Order Types Contract: attacker can drain StopLimit contract funds through Bracket contract because it gives type(uint256).max allowance to bracket contract for input token in performUpkeep functionReentrancy$0
- Oku's New Order Types Contract: stopLimit Id collision with bracket orders due to no validation, opening up an attack to steal fundsLogic error$0
- Oku's New Order Types Contract: Malicious User can Poison Bracket.sol with Blacklisted AccountsLogic error$0
- Oku's New Order Types Contract: Incorrect Freshness Logic Validation in PythOracle breaking the entire mechanism for triggering ordersOracle manipulation$0
- Oku's New Order Types Contract: `cancelOrder` order can be DOSed due to unbounded loop.Logic error$0
- Oku's New Order Types Contract: User can brick the `Bracket` contract by inputing malicious `txData`Logic error$0
- Oku's New Order Types Contract: Failure to reset unspent approval to the target address will lead to the wiping of the smart contract balanceAccess control$0
- Oku's New Order Types Contract: Create order can be DOSed as there is no compulsory fee collected during the creation/cancellation of ordersLogic error$0
- Oku's New Order Types Contract: Malicious users can `createOrder` with `0 amount` and make `DOS` for allLogic error$0
- Oku's New Order Types Contract: Insecure calls to `safeTransferFrom` leads to users tokens steal by attackerAccess control$0
- Ethos Network Financial Contracts: A user can pay less in fees by vouching initially with a smaller amount and then using the `EthosVouch::increaseVouch` function to add the remaining vouch valueLogic error$0
- Ethos Network Financial Contracts: authorProfileId can avoid being slashedLogic error$0
- Ethos Network Financial Contracts: Missing slippage protection on `sellVotes()`Front-running / MEV$0
- Ethos Network Financial Contracts: Market funds cannot be withdrawn because of incorrect calculation of `fundsPaid`Logic error$0
- Ethos Network Financial Contracts: Users could overpay fees when buying votesLogic error$0
- Ethos Network Financial Contracts: Separate calculation of fees in applyFees results in inflated total fee percentage.Logic error$0
- Coded Estate: Use of `u64` for `price_per_day` and `price_per_month` limits handling tokens with 18 decimalsLogic error$0
- Coded Estate: Token owner can burn their token with active rental leading to renters' funds being stuckLogic error$0
- Coded Estate: Cancelling bid doesn't clear token approval of bidder allows malicious bidder to steal any tokens listing for sale with auto-approve enabledLogic error$0
- Coded Estate: Users can't cancel reservation due to out-of-gasLogic error$0
- Ramses Exchange: The fee for the protocol in the function `RamsesV3Pool::flash()` is not calculated correctlyFlash loan attack$0
- Ramses Exchange: Inflated `GaugeV3` rewards when period is skippedLogic error$0
- Ethena Labs: Non-whitelisted users can burn UStb and redeem collateral during WHITELIST_ENABLED stateLogic error$0
- Ethena Labs: Blacklisted user can burn tokens during WHITELIST_ENABLED stateAccess control$0
- Debita Finance V3: A borrower may pay more interest that he has specified, if orders are matched by a malicious actorLogic error$0
- Debita Finance V3: Precision loss leads to locked incentives in `DebitaIncentives::claimIncentives()`Integer overflow/underflow$0
- Debita Finance V3: Borrower can obtain principle tokens without paying collateral tokensLogic error$0
- Debita Finance V3: Lend offer can be deleted multiple timesLogic error$0
- Debita Finance V3: Previous owner can steal unclaimed bribes from new owner of veNFTVaultAccess control$0
- Debita Finance V3: MixOracle is broken due to hardcoded positionLogic error$0
- Debita Finance V3: Borrowers can not extend loans which has maximum duration less than 24 hoursInteger overflow/underflow$0
- Debita Finance V3: After the buyOrder is completed, the order creator does not receive the NFTLogic error$0
- Debita Finance V3: Nobody can buy the `TaxTokenReceipt` NFT from auctionLogic error$0
- Debita Finance V3: DebitaIncentives::updateFunds will exit prematurely and not update whitelisted pairs causing loss of funds to lenders and borrowersLogic error$0
- Debita Finance V3: An attacker can steal the entire borrow and lending incentive of an epoch with FLASHLOAN in a single transactionFlash loan attack$0
- Debita Finance V3: No one can sell `TaxTokensReceipts` NFT receipt to the buy orderLogic error$0
- Debita Finance V3: Lenders and borrowers can not claim liquidation token after NFT collateral auction soldLogic error$0
- Debita Finance V3: Incentive Creator's Tokens Permanently Locked in Zero-Activity EpochsLogic error$0
- Debita Finance V3: Mixed Token Price Will Be Inflated or DeflatedLogic error$0
- Debita Finance V3: Attacker will prevent lenders from canceling lend orders and block non-perpetual lend orders matching.Logic error$0
- Debita Finance V3: Loan Extension Fails Due to Unused Time CalculationLogic error$0
- Debita Finance V3: Incorrect calculation of extended loan days leads to unfair borrower feesLogic error$0
- Debita Finance V3: Interest paid for non perpetual loan during loan extension is lost when the borrower repays debtLogic error$0
- Debita Finance V3: The precision loss in the fee percentage for connecting offers results in the borrower paying less than the expected fee.Integer overflow/underflow$0
- Debita Finance V3: Auctioned `taxTokensReceipt` NFT Blocks Last Claimant Due to Insufficient FundsLogic error$0
- Debita Finance V3: Lender may loose part of the interest he has accrued if he makes his lend offer perpetual after a loan has been extended by the borrowerLogic error$0
- Superfluid Locker System: An attacker may DoS user Fluid balance increases by frontrunning `FluidLocker::claim()` calls and calling `EP_PROGRAM_MANAGER::batchUpdateUserUnits()` directlyReentrancy$0
- Superfluid Locker System: `FluidLocker::_getUnlockingPercentage()` divides before multiplying, suffering a significant precision errorInteger overflow/underflow$0
- Superfluid Locker System: `FluidLocker::_getUnlockingPercentage()` uses 540 instead of `540 days` leading to stuck funds as the unlocking percentage will be bigger than `100%` and underflowInteger overflow/underflow$0
- HatsSignerGate v2: Signer can avoid restrictions and change `safe` state variablesReentrancy$0
- Kleidi: Wrong handling of call data check indices, forcing it sometimes to revertLogic error$0
- Kleidi: `UpdateExpirattionPeriod()` cannot be executed when the `newExpirationPeriod` is less than `currentExpirationPeriod`Logic error$0
- Kleidi: Gas griefing/attack via creating the proposalsLogic error$0
- vVv Launchpad - Investments & Token distribution: Anyone can call `VVVVCTokenDistribution::claim` function by utilizing `ClaimParams` signed by the `signer`Access control$0
- Usual V1: A missing reward update in UsualSP::removeOriginalAllocation will cause reduced reward accumulation for usersLogic error$0
- Usual V1: Withdrawal fee for UsualX vault will be mis-calculated.Logic error$0
- Ethos Network Social Contracts: Restored addresses will not be able to take any action on behalf of the profile due to still being marked as compromisedLogic error$0
- Ethos Network Social Contracts: Corruptible Upgradability PatternLogic error$0
- Mento x Good$ Integration: `TradingLimits::update()` incorrectly only rounds up when `deltaFlowUnits` becomes 0, which will silently increase trading limitsLogic error$0
- Mento x Good$ Integration: `GoodDollarExchangeProvider::mintFromExpansion()` will change the price due to a rounding error in the new ratioInteger overflow/underflow$0
- Mento x Good$ Integration: Malicious user may frontrun `GoodDollarExpansionController::mintUBIFromReserveBalance()` to make protocol funds stuckLogic error$0
- The Wildcat Protocol: Inconsistency across multiple repaying functions causing lender to pay extra feesReentrancy$0
- The Wildcat Protocol: User could withdraw more than supposed to, forcing last user withdraw to failInteger overflow/underflow$0
- The Wildcat Protocol: Users are incentivized to not withdraw immediately after the market is closedLogic error$0
- The Wildcat Protocol: `FixedTermLoanHook` looks at `block.timestamp` instead of `expiry`Logic error$0
- The Wildcat Protocol: `AccessControlHooks` `onQueueWithdrawal()` does not check if market is hooked which could lead to unexpected errors such as temporary DoSFront-running / MEV$0
- The Wildcat Protocol: Role providers cannot be EOAs as stated in the documentationLogic error$0
- The Wildcat Protocol: Role providers can bypass intended restrictions and lower expiry set by other providersAccess control$0
- The Wildcat Protocol: `FixedTermLoanHooks` allow Borrower to update Annual Interest before end of the "Fixed Term Period"Logic error$0
- The Wildcat Protocol: No lender is able to exit even after the market is closedLogic error$0
- Index x Morpho Leverage Integration: _calculateMaxBorrowCollateral calculates repay incorrectly and can lead to set token liquidationLogic error$0
- Superposition: `get_fee_growth_inside` in `tick.rs` should allow for `underflow`/`overflow` but doesn'tInteger overflow/underflow$0
- Superposition: `decrPosition09293696` will not work due to incorrect function signatureLogic error$0
- Superposition: Volatile pools with higher fee structure cannot be created because of tick_spacingLogic error$0
- Superposition: When performing `swap` and the swap position does not cover `swap amount`, the base price of `sqrt_price` is set incorrectlyLogic error$0
- Superposition: Unintended under/overflow of the amount already swapped in/out due to unmatching logicInteger overflow/underflow$0
- Superposition: If liquidity is insufficient, users may need to pay more tokens in `swap2`Logic error$0
- Superposition: No related function to set `fee_protocol`Logic error$0
- Superposition: Wrong liquidity formula usedLogic error$0
- Superposition: `swapOut` functions have invalid slippage check, causing user loss of fundsLogic error$0
- Superposition: `update_emergency_council_7_D_0_C_1_C_58()` updates nft manager instead of emergency councilLogic error$0
- Superposition: Parameter misordering in fee collection function causes denial of service and fee lossLogic error$0
- Superposition: Users can't remove liquidity while a pool is disabledAccess control$0
- Superposition: `_onTransferReceived()` does not work as intendedLogic error$0
- Superposition: Position's owed fees should allow underflow but it reverts instead, resulting in locked fundsInteger overflow/underflow$0
- Superposition: Lp's liquidity may be lost if re-org happensPrice manipulation$0
- Superposition: `bytes data` param is not passed to ERC721 recipient as expected by EIP-721Logic error$0
- Superposition: Unrevoked approvals allow NFT recovery by previous ownerLogic error$0
- Superposition: `swap_2` implementation will randomly revert due to improper check, root cause for failed test `ethers_suite_uniswap_orchestrated_uniswap_two`Logic error$0
- AXION: Boost buyback burns incorrect amount of liquidityLogic error$0
- AXION: The `V3AMO._mintAndSellBoost()` function does not work with Velodrome, Aerodrome, Fenix, Thena and RamsesLogic error$0
- AXION: Liquidity is incorrectly calculated during `addLiquidity()` for V3AMO, causing DoS.Logic error$0
- Fenix Finance: `dettachFromManagedNFT` might revert and temporarily prevent users from detaching in certain situationsReentrancy$0
- Fenix Finance: `boostedValue` should be added to `permanentTotalSupply` for permanently locked tokensInteger overflow/underflow$0
- Fenix Finance: Potential incorrect index update in revived gauge under specific conditionsLogic error$0
- Fenix Finance: If rewards are not distributed to some gauges in an epoch, it can lead to incorrect rewards distribution in the next epochLogic error$0
- Fenix Finance: The `VoterUpgradeableV2.createV3Gauge` function incorrectly uses `v2GaugeFactory` instead of `v3GaugeFactory`Logic error$0
- Fenix Finance: `killGauge()` will lead to wrong calculation of emissionLogic error$0
- SYMMIO v0.8.4 Update: Inconsistent in the liquidation fee leads to unfairness in liquidation processLogic error$0
- SYMMIO v0.8.4 Update: Force Close can be DOSed by exploiting `settleUpnl` functionLogic error$0
- SYMMIO v0.8.4 Update: Emergency close might be blocked due to insufficient allocated balanceLogic error$0
- Phi: Refunds sent to incorrect addresses in certain casesLogic error$0
- Karak: Slashings will always fail in some casesLogic error$0
- Phi: PhiNFT1155 contracts continue sending fees/royalties to old protocol destination addressAccess control$0
- predict.fun lending market: Refinancing and auction take less fee than expected.Logic error$0
- Phi: Lack of data validation when users are claiming their art allows malicious user to bypass signature/merkle hash to provide unapproved `ref_`, `artId_` and `imageURI`Logic error$0
- Karak: Changing the `slashingHandler` for `NativeVaults` will DoS slashingLogic error$0
- Phi: Cred creator could cause stuck fundsAccess control$0
- Phi: `shareBalance` bloating eventually blocks curator rewards distributionLogic error$0
- Phi: Attacker can DOS user from selling shares of a `credId`Front-running / MEV$0
- Karak: The operator can create a `NativeVault` that can be silently unslashableLogic error$0
- Karak: A snapshot may face a permanent DoS if both a slashing event occurs in the `NativeVault` and the staker's validator is penalizedLogic error$0
- Phi: Forced `endTime` extension in `updateArtSettings()` allows attacker to mint more tokensAccess control$0
- Phi: Incorrect fee handling prevents protocol from updating feesAccess control$0
- Phi: Reentrancy in creating Creds allows an attacker to steal all Ether from the Cred contractReentrancy$0
- Karak: Delayed slashing window and lack of transparency for pending slashes could lead to loss of fundsLogic error$0
- Phi: Signature replay in `signatureClaim` results in unauthorized claiming of rewardsAccess control$0
- Karak: A `DoS` on snapshots due to a rounding error in calculationsInteger overflow/underflow$0
- predict.fun lending market: A borrower can not repay to a USDC blacklisted lenderLogic error$0
- Phi: Signature replay in `createArt` allows to impersonate artist and steal royaltiesReentrancy$0
- predict.fun lending market: Using wrong format of `questionId` for `NegRiskCtfAdapter` leads to loan operations on resolved multi-outcome marketsLogic error$0
- Karak: Slashing `NativeVault` will lead to locked ETH for the usersLogic error$0
- predict.fun lending market: Collateral can already be seized even when negRiskMarket is not fully resolvedLogic error$0
- predict.fun lending market: hashProposal uses wrong typeshash when hashing the encoded Proposal struct dataLogic error$0
- Phi: `PhiFactory:claim` potentially causing loss of funds if `mintFee` changed beforehandLogic error$0
- Phi: Unrestricted changes to token settings allow artists to alter critical featuresLogic error$0
- Phi: Contract `PhiNFT1155` can't be pausedReentrancy$0
- Reserve: Broken assumptions can lead to the inability to seize RSRFront-running / MEV$0
- Reserve: The time available for a canceled withdrawal should not impact future unstaking processesLogic error$0
- Reserve: The `tradeEnd` in `BackingManager` isn't updating correctlyReentrancy$0
- Reserve: RToken can manipulate distribution to avoid paying DAO feesAccess control$0
- Reserve: The default Governor Anastasius is unable to call `resetStakes`Governance attack$0
- Reserve: Dutch auctions can fail to settle if any other collateral in the basket behaves unexpectedlyGovernance attack$0
- Reserve: Users can dodge losses due to StRSR era changes with instant operationsFront-running / MEV$0
- SeeR PM: Users of protocol will be exposed to high slippage due to no callre-specified minimum output & deadline paramLogic error$0
- Thanos L2 Native Token Bridge: L1 contract can evade aliasing, spoofing unowned L2 addressBridge exploit$0
- MorphL2: Delegators can lose their rewards when a delegator has removed a delegatee and claims all of his rewards before delegating again to a previous removed delegatee.Logic error$0
- MorphL2: In the `revertBatch` function, `inChallenge` is set to `false` incorrectly, causing challenges to continue after the protocol is paused.Logic error$0
- MorphL2: Malicious sequencer can DoS proposal execution by inflating the amount of proposals to be prunedLogic error$0
- MorphL2: The 255th staker in `L1Staking.sol` can avoid getting slashed and inadvertently cause fund loss to stakersLogic error$0
- MorphL2: Sequencer will be underpaid because of incorrect `commitScalar`Oracle manipulation$0
- MorphL2: Attacker can freeze chain and steal challenge deposits using fake `prevStateRoot`Logic error$0
- MorphL2: Batches committed during an on going challenge can avoid being challengedLogic error$0
- MorphL2: Possible wrong accounting in L1Staking.solLogic error$0
- MorphL2: Stakers lose their commission if they unstake as they cannot claim their pending rewards anymore after unstakingLogic error$0
- Saffron Lido Vaults: `totalEarnings` is incorrect when withdrawing after ending which will withdraw too many funds leaving the `Vault` insolventLogic error$0
- Saffron Lido Vaults: The incorrect accounting of protocol fee will cause double charging fee and wrong distribution of earnings for variable usersLogic error$0
- Saffron Lido Vaults: Withdrawing after a slash event before the vault has ended will decrease `fixedSidestETHOnStartCapacity` by less than it should, so following users will withdraw more their initial depositLogic error$0
- Boost Core Incentive Protocol: Boost creator can collect all the fees by setting referralFee to 9_000 and give claimants his address as referrer_ addressLogic error$0
- Boost Core Incentive Protocol: Unable to call some functions in the incentive contracts with onlyOwner modifier because of incorrect initialization leading to stuck fundsLogic error$0
- Boost Core Incentive Protocol: Both block.prevrandao and block.timestamp are not reliably source of randonnessOracle manipulation$0
- Size: Credit can be sold forcibly as `forSale` setting can be ignored via CompensateLogic error$0
- Size: Size uses wrong source to query available liquidity on Aave, resulting in borrow and lend operations being bricked upon mainnet deploymentLogic error$0
- Size: Fragmentation fee is not taken if user compensates with newly created positionLogic error$0
- Size: The collateral remainder cap is incorrectly calculated during liquidationLogic error$0
- Size: Sandwich attack on loan fulfillment will temporarily prevent users from accessing their borrowed fundsFront-running / MEV$0
- Size: Borrower is not able to compensate his lenders if he is underwaterLogic error$0
- Size: Neither `sellCreditMarket()` nor `compensate()` checks whether the credit position to be sold is allowed for saleLogic error$0
- Size: Risk of overpayment due to race condition between `repay` and `liquidateWithReplacement` transactionsLogic error$0
- Size: Inadequate checks to confirm the correct status of the sequence/`sequencerUptimeFeed` in `PriceFeed.getPrice()` contractLogic error$0
- Size: `withdraw()` users may can't withdraw `underlyingBorrowToken` properlyLogic error$0
- Size: Multicall does not work as intendedLogic error$0
- Size: Users won't liquidate positions because the logic used to calculate the liquidator's profit is incorrectLogic error$0
- Size: `executeBuyCreditMarket` returns the wrong amount of cash and overestimates the amount that needs to be checked in the variable poolLogic error$0
- Size: Users may incur an unexpected fragmentation fee in the `compensate()` callFront-running / MEV$0
- Size: When `sellCreditMarket()` is called to sell credit for a specific cash amount, the protocol might receive a lower swapping fee than expectedLogic error$0
- Flayer: Malicious user can bypass execution of `CollectionShutdown` functionLogic error$0
- Flayer: Price limit is used as the price range in internal swaps, causing swap TXs to revertLogic error$0
- Flayer: A user loses funds when he modifies only price of listings.Logic error$0
- Flayer: `reserve()` doesn't deletes the `_isLiquidation` mapping, causing tax loss for owner in futureLogic error$0
- Flayer: User can pay less protected listing fees.Logic error$0
- Flayer: It is possible to prevent the execution of the `execute()` function, listing only one NFT.Logic error$0
- Flayer: The health of a ```ProtectedListing``` is incorrectly calculated if the ```tokenTaken``` has be changed through ```ProtectedListings::adjustPosition()```.Logic error$0
- Flayer: Lister is overpaying during the cancel of his listing on ```Listings::cancelListings()```.Logic error$0
- Flayer: In the `Listings.sol#relist()` function, `listing.created` is not set to `block.timestamp`.Logic error$0
- Flayer: `ERC1155Bridgable` is not EIP-1155 compliantLogic error$0
- Flayer: Stale shutdown params can be reused to drain all funds from `CollectionShutdown` contractLogic error$0
- Flayer: Reserving a listing checkpoints the collection's `compoundFactor` at an intermediary higher compound factorLogic error$0
- Flayer: ````UniswapImplementation.beforeSwap()```` is vulnerable to price manipulation attackOracle manipulation$0
- Flayer: Owner Can Lose The Token After Being Unlocked but Not WithdrawnLogic error$0
- Flayer: Incorrect index handling in checkpoint creation leads to incorrect initial checkpoint retrieval and potential DoSLogic error$0
- Flayer: There is a logical error in the _distributeFees() function, resulting in an unfair distribution of fees.Logic error$0
- Flayer: If a collection has been shutdown but later re-initialized, it cannot be shutdown againLogic error$0
- Flayer: `ERC721Bridgable` and `ERC1155Bridgable` are not EIP-2981 compliant, and fail to correctly collect or attribute royalties to artistsBridge exploit$0
- Flayer: Frequency-dependent `TaxCalculator.sol::calculateCompoundedFactor` leads to interest loss either for users or for protocolLogic error$0
- Flayer: Admin can not set the pool fee since it is only set in memoryLogic error$0
- Flayer: Previous `beneficiary` will not be able to claim `beneficiaryFees` if current beneficiary is a poolLogic error$0
- Flayer: Quorum overflow in `CollectionShutdown` leads to complete drain of contract's fundsInteger overflow/underflow$0
- Flayer: The `relist` function does not check whether the listing is a liquidation listing causing users to pay taxes and refunds being paid to the listing owner who did not pay taxesLogic error$0
- Flayer: User can unlock protected listing without paying any fee.Logic error$0
- Flayer: Liquidity provided when initializing a collection in Locker.sol will be stuck in Uniswap, with no way for the user to recover itLogic error$0
- Flayer: FTokens are burned after `quorumVotes` are recorded making a portion of the shares unclaimableLogic error$0
- Flayer: Protected listings checkpoints are not always updated when the total supply changesLogic error$0
- Flayer: There is a logical error in the removeFeeExemption() function.Logic error$0
- Flayer: The attacker will prevent eligible users from claiming the liquidated balanceLogic error$0
- Flayer: The Users who voted for collection shutdown will lose their collection tokens by cancelling the shutdownLogic error$0
- Flayer: ERC1155Bridgable.sol cannot receive ETH royaltiesLogic error$0
- Flayer: `_listing` mapping not deleted when calling `Listings::reserve` can lead to a token being sold when it shouldn't be for saleLogic error$0
- Flayer: ERC1155 cannot claim royalities on L2.Logic error$0
- Flayer: Donation fees are sandwichable in one transactionFront-running / MEV$0
- Perennial V2 Update #3: Anyone can cancel other accounts `nonces` and `groups`, leading to griefing their `Intents`.Logic error$0
- TraitForge: NFTs mature too slowly under default settings.Logic error$0
- Perennial V2 Update #3: Market coordinator can liquidate all users in the marketLogic error$0
- Perennial V2 Update #3: _ineligible() redemptionEligible is miscalculatedLogic error$0
- TraitForge: A dev will lose rewards if after claiming his rewards he mints an NFTLogic error$0
- TraitForge: Number of entities in generation can surpass the 10k numberLogic error$0
- TraitForge: Incorrect percentage calculation in NukeFund and EntityForging when `taxCut` is changed from default valueLogic error$0
- Perennial V2 Update #3: Market coordinator can steal all market collateral by abusing very low value of `scale`Logic error$0
- TraitForge: Each generation should have 1 "Golden God" NFT, but there could be 0Logic error$0
- TraitForge: Imprecise token age calculation results in an incorrect nuke factor, causing users to claim the wrong amountInteger overflow/underflow$0
- Perennial V2 Update #3: Market coordinator can set proportional and adiabatic fees much higher than limited by protocol due to fixed point truncationLogic error$0
- Perennial V2 Update #3: Corrupted storage after upgrade in the `MarketFactory` contract.Logic error$0
- Perennial V2 Update #3: The `RiskParameter.liquidationFee` variable is not treated and validated as a percentage value, leading to breaking protocol invariants.Logic error$0
- Perennial V2 Update #3: `MultiInvoker`, `Manager` and `Account` unexpected reverts in certain conditions due to AAVE reverting on deposits and withdrawals with 0 amountLogic error$0
- Perennial V2 Update #3: when ReserveBase undercollateralized , Manager.orders will not be able to executeLogic error$0
- TraitForge: Forger Entities can forge more times than intendedLogic error$0
- Perennial V2 Update #3: Market coordinator can set `staleAfter` to a huge value allowing anyone to steal all market collateral when there are no transactions for some timeLogic error$0
- TraitForge: `Golden God` tokens can be minted twice per generationLogic error$0
- TraitForge: There is no slippage check in the `nuke()` functionLogic error$0
- TraitForge: `mintToken()`, `mintWithBudget()`, and `forge()` in the `TraitForgeNft` contract will fail due to a wrong modifier used in `EntropyGenerator.initializeAlphaIndices()`Logic error$0
- Perennial V2 Update #3: Maliciously specifying a very large intent.price will result in a large gain at settlement, stealing fundsLogic error$0
- TraitForge: Lack of ability to make an some external function calls makes the DAO stage unreachableReentrancy$0
- TraitForge: Users' ability to nuke will be DoSed for three days after putting NFTs up for sale and canceling the saleLogic error$0
- Perennial V2 Update #3: `MultiInvoker` and `Manager` orders execution can be DOS in key moments if AAVE/Compound utilization is at 100%Logic error$0
- Perennial V2 Update #3: TriggerOrder.notionalValue() Using the wrong latestPositionLocal to calculate the value causes the user to overpay feesLogic error$0
- Perennial V2 Update #3: `Controller`'s core function of Rebalance will not rebalance when rebalance is needed in some cases, breaking core functionalityLogic error$0
- TraitForge: Pause and unpause functions are inaccessibleLogic error$0
- TraitForge: Duplicate NFT generation via repeated forging with the same parentLogic error$0
- Perennial V2 Update #3: Emptyset reserve strategies may revert when aave/compound supply limit is reached or pool owner pause/froze the poolLogic error$0
- Perennial V2 Update #3: Market coordinator can steal all market collateral by changing adiabatic feesLogic error$0
- Perennial V2 Update #3: Keepers can lose compensation feeLogic error$0
- TraitForge: TraitForgeNft: Generations without a golden god are possibleLogic error$0
- TraitForge: Griefing attack on seller's airdrop benefitsLogic error$0
- Perennial V2 Update #3: The `Market.migrate()` function has no effect and does not migrate `PositionStorageGlobal` to the new storage layout, breaking the migration assumption.Logic error$0
- Perennial V2 Update #3: Lack of access control in the `MarketFactory.updateExtension()` function.Access control$0
- TraitForge: Incorrect `isApprovedForAll` check in the `NukeFund.nuke()` functionAccess control$0
- Perennial V2 Update #3: settle() asyncFee is left in the KeepFactory and is not transfer to the keeper.Logic error$0
- Basin: `Stable2::calcLpTokenSupply()` function cannot convert under certain circumstances, DoSing `calcReserveAtRatioLiquidity`Logic error$0
- ZeroLend One: Using the same heartbeat for multiple price feeds, causing DOSLogic error$0
- ZeroLend One: CuratedVaults are prone to inflation attacks due to not utilising virtual sharesAccess control$0
- ZeroLend One: A Reserve Borrow Rate can be significantly decreased after liquidationLogic error$0
- Cork Protocol: Wrong accounting of locked RA when repurchasing DS+PA with RALogic error$0
- Cork Protocol: Attackers will steal the reserve from the `Vault` by receiving `ra` in `FlashSwapRouter::__swapDsforRa()`Logic error$0
- ZeroLend One: An attacker can hijack the `CuratedVault`'s matured yieldLogic error$0
- ZeroLend One: Inconsistent Application of Reserve Factor Changes Leads to Protocol Insolvency RiskLogic error$0
- ZeroLend One: Full Liquidation Won't Sweep the Whole Debts With Leaving Some, And Will Wrongly Set Borrowing as FalseLogic error$0
- ZeroLend One: The rewards distribution in the NFTPositionManager is unfairLogic error$0
- ZeroLend One: Function `executeMintToTreasury` will incorrectly reduce the `supplyShares`, therefore prevent the last users from withdrawingLogic error$0
- Cork Protocol: Admin will not be able to upgrade the smart contracts, breaking core functionality and rendering the upgradeable contracts uselessLogic error$0
- Cork Protocol: Incoming Redemption Assets not being tracked when repurchase is calledLogic error$0
- ZeroLend One: Interest rate is updated before updating the debt when repaying debtLogic error$0
- Cork Protocol: Lack of slippage protection leads to loss of protocol fundsLogic error$0
- ZeroLend One: `CuratedVaultSetters::_supplyPool()` does not consider the pool cap of the underlying pool, which may cause `deposit()` to revert or lead to an unintended reordering of `supplyQueue`Logic error$0
- ZeroLend One: The repayment process in the NFTPositionManager can sometimes be revertedLogic error$0
- ZeroLend One: Malicious actors can execute sandwich attacks during market addition with existing fundsFront-running / MEV$0
- ZeroLend One: Liquidated positions will still accrue rewards after being liquidatedLogic error$0
- Cork Protocol: Users will steal excess funds from the Vault due to `VaultPoolLib::redeem()` not always decreasing `self.withdrawalPool.raBalance` and `self.withdrawalPool.paBalance`Logic error$0
- ZeroLend One: NFTPositionManager's `repay()` and `repayETH()` are unavailable unless preceded atomically by an accounting updating operationLogic error$0
- Cork Protocol: FlashSwapRouter::emptyReserve() and FlashSwapROuter::emptyReservePartial() functions return incorrect valuesLogic error$0
- Cork Protocol: The UUPS proxie standard is implemented incorrectly, making the protocol not upgradeableLogic error$0
- ZeroLend One: `GenericLogic.sol` contract assumes all price feeds has the same decimals but is a wrong assumption that leads to an incorrect health factor math.Oracle manipulation$0
- ZeroLend One: Liquidation can be DOSed due to lack of liquidity on collateral asset reserveLogic error$0
- ZeroLend One: Unclaimable reserve assets will accrue in a pool due to the difference between interest paid on borrows and interest earned on suppliesLogic error$0
- Cork Protocol: Providing liquidity to the AMM does not check the return value of actually provided tokens leading to locked funds.Logic error$0
- ZeroLend One: After a User withdraws The interest Rate is not updated accordingly leading to the next user using an inflated index during next deposit before the rate is normalized againLogic error$0
- ZeroLend One: Malicious pool deployer can set a malicious interest rate contract to lock funds of vault depositorsLogic error$0
- Cork Protocol: Admin new issuance or user calling `Vault::redeemExpiredLv()` after `Psm::redeemWithCt()` will lead to stuck funds when trying to withdrawLogic error$0
- ZeroLend One: Wrong calculation of supply/debt balance of a position, disrupting core system functionalitiesLogic error$0
- ZeroLend One: Position Risk Management Functionality Missing in Position Manager and dos in certain conditionsLogic error$0
- ZeroLend One: Curated Vault allocators cannot `reallocate()` a pool to zero due to attempting to withdraw 0 tokens from the underlying poolLogic error$0
- Cork Protocol: Withdrawing all `lv` before expiry will lead to lost funds in the VaultLogic error$0
- Cork Protocol: `VaultPoolLib::reserve()` will store the `Pa` not attributed to user withdrawals incorrectly and leave in untracked once it expires againLogic error$0
- Cork Protocol: Users redeeming early will withdraw `Ra` without decreasing the amount locked, which will lead to stolen funds when withdrawing after expiryLogic error$0
- ZeroLend One: `LiquidationLogic@_burnCollateralTokens` does not account for liquidation fees when withdrawing collateral during liquidation leading to incorrect accounting and Pools insolvencyLogic error$0
- ZeroLend One: Supply interest is earned on `accruedToTreasuryShares` resulting in higher than expected treasury fees and under rare circumstances DOSed pool withdrawalsLogic error$0
- Cork Protocol: Admin will not be able to only pause deposits in the `Vault` due to incorrect check leading to DoSed withdrawalsLogic error$0
- Velar Artha PerpDEX: Usage of `tx.origin` to determine the user is prone to attacksAccess control$0
- Velar Artha PerpDEX: Fee Precision Loss Disrupts Liquidations and Causes Loss of FundsInteger overflow/underflow$0
- Velar Artha PerpDEX: Not decreasing oracle timestamp validation leads to DoS for protocol usersLogic error$0
- Velar Artha PerpDEX: First depositor could DoS the poolInteger overflow/underflow$0
- Velar Artha PerpDEX: LPs cannot specify min amount received in burn function, causing loss of fund for themLogic error$0
- Velar Artha PerpDEX: LPs will withdraw more value than deposited during pegged token de-peg eventsOracle manipulation$0
- Velar Artha PerpDEX: User could have impossible to close position if funding fees grow too big.Logic error$0
- Velar Artha PerpDEX: Funding fee will be zero because of precision lossLogic error$0
- ZetaChain: Inbound transactions submitted to the `InTxTracker` that contain multiple `ZetaSent` and `Deposited` events are not processed correctly by the observers resulting in a loss of fundsBridge exploit$0
- ZetaChain: Direct WETH swap fails due to incompatibility with ``ZetaTokenConsumerUniV3`` & ``ZetaTokenConsumerPancakeV3``Logic error$0
- ZetaChain: Outbound zEVM cross-chain messages ignore the user-specified gas limit and may fail with an out-of-gas errorLogic error$0
- ZetaChain: An already executed `InTxTracker` can still be addedLogic error$0
- ZetaChain: Inability to reliably verify inbound transactions may result in missed inbound transactionsLogic error$0
- ZetaChain: ERC-20 deposit cctxs are refunded to the EOA instead of an intermediary contractLogic error$0
- ZetaChain: Gas Coin Setup Result In Immediate Profitable ArbitrageFront-running / MEV$0
- ZetaChain: Zeta token supply checker incorrectly classifies in-transit cctxs as settled resulting in misleading checksLogic error$0
- BendDAO: Incorrect accounting of utilization, supply/borrow rates due to vulnerable implementation in `IsolateLogic::executeIsolateLiquidate`Logic error$0
- BendDAO: It's impossible to retrieve collected fines from the yield staking contractLogic error$0
- BendDAO: Protocol should update interest rate after changing rate model in the configurator moduleLogic error$0
- BendDAO: Major insolvency risk in `LiquidationLogic::executeCrossLiquidateERC721()` due to not setting a maximum liquidation priceOracle manipulation$0
- BendDAO: Bad debt is never handled which places insolvency risks on BendDAOGovernance attack$0
- BendDAO: `YieldEthStakingLido` lacks a limit on the max stake amount, which may result in the unstake exceeding `MAX_STETH_WITHDRAWAL_AMOUNT`, resulting in the token not being retrievedGovernance attack$0
- BendDAO: `isolateRepay()` lack of check `onBehalf == nftOwner`Integer overflow/underflow$0
- BendDAO: `wrapNativeTokenInWallet()` always reverts on ArbitrumLogic error$0
- BendDAO: `isolateRedeem()` revert in case Revert-on-zero-value-transfers tokensOracle manipulation$0
- BendDAO: Borrower can prevent yield position repayment and closure by the botLogic error$0
- BendDAO: Mismatch between yield amount deposited in shares calculation and `getAccountYieldBalance()`Integer overflow/underflow$0
- BendDAO: Updating fee factor may create issues for the protocolLogic error$0
- BendDAO: Users cannot unstake from YiedlETHStakingEtherfi.sol, because YieldAccount.sol is incompatible with ether.fi's WithdrawRequestNFT.solLogic error$0
- BendDAO: PriceOracle has invalid checks on price stalenessOracle manipulation$0
- Basin: For extreme ratios, `getRatiosFromPriceSwap` will return data for which is impossible to converge into a reserveLogic error$0
- BendDAO: Unhandled request invalidation by the owner of Etherfi will lead to stuck debtLogic error$0
- BendDAO: Incorrect `unwrapNativeTokenInWallet` receiver addressReentrancy$0
- Basin: Incorrectly assigned `decimal1` parameter upon decodingInteger overflow/underflow$0
- Basin: `WellUpgradeable` can be upgraded by anyoneAccess control$0
- BendDAO: Updating asset collateral params can lead to liquidate borrowers arbitrarilyOracle manipulation$0
- BendDAO: `executeYieldBorrowERC20()` checking `yieldCap` is wrongLogic error$0
- BendDAO: Revert due to underflow error, leading to lock of the liquidated NFTInteger overflow/underflow$0
- BendDAO: If an isolated borrower/bidder is blacklisted by the debt token, risk of DOS liquidation/auction of the corresponding loanLogic error$0
- BendDAO: Anyone can get the NFT collateral token after an Auction without bidding due to missing check on `msg.sender`Access control$0
- BendDAO: Risk of mass liquidation after pool/asset pause and unpause, due to borrow interest compounding implementationLogic error$0
- BendDAO: Fee-on-Transfer tokens cause problems in multiple placesLogic error$0
- Basin: In `Stable2LUT1::getRatiosFromPriceLiquidity`, in extreme cases, `updateReserve` will start breakingInteger overflow/underflow$0
- BendDAO: `erc721DecreaseIsolateSupplyOnLiquidate()` missing clear `lockerAddr`Logic error$0
- BendDAO: User are forced to borrow again in order to unlock their NFTs from `IsolateLending.sol`Logic error$0
- BendDAO: No check if Arbitrum/Optimism L2 sequencer is down in Chainlink feeds `PriceOracle.sol`Oracle manipulation$0
- BendDAO: The bot won't be able to unstake or repay risky positions in the yield contractLogic error$0
- BendDAO: Changing auction duration will have effect on ongoing auctionsGovernance attack$0
- Proof Of Humanity V2: V1 Profiles Can Avoid Penalties Using `transferHumanity`Logic error$0
- Midas - Instant Minter/Redeemer: Corruptible Upgradability PatternLogic error$0
- Midas - Instant Minter/Redeemer: RedemptionVaultWIthBUIDL does not redeem full balance if BUIDL balance is less than 250k post transaction.Logic error$0
- Midas - Instant Minter/Redeemer: Discrepancy between spec and code: Vault admin cannot update `tokensReceiver`.Logic error$0
- Midas - Instant Minter/Redeemer: Standard redemption in `RedemptionVault` does not update token allowance.Logic error$0
- Midas - Instant Minter/Redeemer: `RedemptionVaultWIthBUIDL.sol#redeemInstant` will always DoS due to incorrect contract call.Logic error$0
- Midas - Instant Minter/Redeemer: MBasisRedemptionVaultWithSwapper does not update mBasis daily limit or allowance when conducting mBasis->mTBill swap.Logic error$0
- Sentiment V2: RedStone oracle is vulnerable because ```updatePrice``` is not called during the ```getEthValue``` function.Oracle manipulation$0
- Sentiment V2: Lack of slippage protection during withdrawal in SuperPool and Pool contracts.Logic error$0
- Sentiment V2: Liquidation fee is incorrectly calculated, leading to unprofitable liquidationsLogic error$0
- Sentiment V2: None of the functions in SuperPool checks pause stateLogic error$0
- Sentiment V2: Not removing a token from the position assets upon an owner removing a token from the known assets will cause huge issuesLogic error$0
- Sentiment V2: Protocol's interestFees + Interest in a pool can be lost because of precision loss when using low-decimal assets like USDT/USDC.Logic error$0
- Sentiment V2: User's can seize more assets during liquidation by using type(uint).maxLogic error$0
- Sentiment V2: `ChainlinkOracle` doesn't validate for minAnswer/maxAnswerOracle manipulation$0
- Sentiment V2: Base pools can get bricked if depositors pull outLogic error$0
- Sentiment V2: Super Pool shares can be inflated by bad debt leading to overflowsLogic error$0
- Sentiment V2: Under certain circumstances bad debt will cause first depositor to lose fundsLogic error$0
- Sentiment V2: Liquidations will revert if a position has been blacklisted for USDCLogic error$0
- Sentiment V2: Red Stone Oracle Can Time TravelOracle manipulation$0
- Sentiment V2: `SuperPool` fails to correctly deposit into poolsLogic error$0
- Sentiment V2: Liquidators may repay a position's debt to pools that are within their risk tolerance, breaking the concept of isolated risk in base poolsLogic error$0
- Sentiment V2: Exploiter can force user into unhealthy condition and liquidate himLogic error$0
- Sentiment V2: rounding error due to internal accounting and can steal some portion of the first depositors fundsInteger overflow/underflow$0
- Sentiment V2: LTV of 98% would be extremely dangerousLogic error$0
- Sentiment V2: Attacker Can Manipulate Interest Distribution by Exploiting Asset Transfers and Fee Accrual MechanismLogic error$0
- Sentiment V2: Super pool uses `ERC20.approve` instead of safe approvals, causing it to always revert on some ERC20sLogic error$0
- Winnables Raffles: Anyone can cancel a raffle with tickets == minTicketsThreshold, griefing all participantsLogic error$0
- Winnables Raffles: Method refundPlayers doesn't update _lockedETH in WinnableTicketManagerLogic error$0
- Winnables Raffles: The setRole() function grants role instead of removingAccess control$0
- Optimism: LPP metadata can be altered after the challenge period is over, allowing incorrect states to be provenOracle manipulation$0
- Munchables: Miscalculation in `_farmPlots` function could lead to a user unable to unstake all NFTsInteger overflow/underflow$0
- Optimism: An attacker can bypass the challenge period during LPP finalizationOracle manipulation$0
- Optimism: L2 precompile calls can be impossible to reproduce on L1Oracle manipulation$0
- Munchables: Failure to update dirty flag in `transferToUnoccupiedPlot` prevents reward accumulation on valid plotLogic error$0
- Munchables: in `farmPlots()` an underflow in edge case leading to freeze of funds (NFT)Integer overflow/underflow$0
- Optimism: Unvalidated memory access in `readMem` and `writeMem` functionsAccess control$0
- Optimism: Invalid `DISPUTED_L2_BLOCK_NUMBER` is passed to VMLogic error$0
- Optimism: Honest party's move could become invalid when re-org takes placeLogic error$0
- Munchables: Invalid validation in `_farmPlots` function allowing a malicious user repeated farming without locked fundsLogic error$0
- Optimism: Missing address check for instructions LH and LHULogic error$0
- Optimism: In some cases, proper `CLOCK_EXTENTSION` time cannot be ensured to generate the initial instruction traceLogic error$0
- Optimism: Multiplication overflow leading to memory corruption and incorrect register write-backInteger overflow/underflow$0
- Optimism: Addresses can be pre-populated with bad dataLogic error$0
- Munchables: Users can farm on zero-tax land if the landlord locked tokens before the LandManager deploymentLogic error$0
- Optimism: Attacker can continuously create games for not yet safe l2 blocks to prevent the update of anchor stateLogic error$0
- Optimism: `MIPS` - Incorrect implementation of SRAV instructionLogic error$0
- Olas: `pointsSum.slope` Not Updated After Nominee Removal and Votes RevocationLogic error$0
- Olas: Attacker can cancel claimed staking incentives on ArbitrumAccess control$0
- Olas: Adding staking instance as nominee before it is createdGovernance attack$0
- Olas: The `msg.value - cost` for multiple cross-chain bridges are not refunded to usersBridge exploit$0
- Olas: Arbitrary tokens and data can be bridged to `GnosisTargetDispenserL2` to manipulate staking incentivesAccess control$0
- Olas: StakingToken.sol doesn't properly handle FOT, rebasing tokens or those with variable which will lead to accounting issues downstreamLogic error$0
- Olas: Unauthorized claiming of staking incentives for retainerAccess control$0
- Olas: Attacker can make claimed staking incentives irredeemable on Gnosis ChainBridge exploit$0
- Olas: Unstake function reverts because of use of outdated/stale `serviceIds` arrayReentrancy$0
- Olas: `checkpoint` function is not called before staking which can cause loss of rewards for already staked servicesAccess control$0
- Olas: Non-normalized amounts sent via Wormhole lead to failure to redeem incentivesInteger overflow/underflow$0
- Olas: Users will lose all ETH sent as `cost` parameter in transactions to and from OptimismBridge exploit$0
- Olas: Staked service will be irrecoverable by owner if not an ERC721 receiverReentrancy$0
- Olas: In `retain` function, `checkpoint` nominee function is not called which can cause zero amount of tokens being retainedLogic error$0
- Olas: The `refundAccount` is erroneously set to `msg.sender` instead of `tx.origin` when `refundAccount` specified as `address(0)`Bridge exploit$0
- Olas: Less active nominees can be left without rewards after an year of inactivityGovernance attack$0
- Olas: Refunds for unconsumed gas will be lost due to incorrect refund chain IDBridge exploit$0
- Olas: Blocklisted or paused state in staking token can prevent service owner from unstakingReentrancy$0
- Olas: Removed nominee doesn't receive staking incentives for the epoch in which they were removed which is against the intended behaviourLogic error$0
- Olas: Loss of incentives if total weight in an epoch is zeroBridge exploit$0
- Olas: Incorrect handling of last nominee removal in `removeNominee` functionInteger overflow/underflow$0
- BadgerDAO: Staking ETH incorrectly assumes revert bubblingFlash loan attack$0
- Vultisig: Adversary can prevent the launch of any ILO pool with enough raised capital at any moment by providing single-sided liquidityLogic error$0
- Vultisig: Transfer of `ILOPool` NFT token to different account allows for users to bypass the pool's `maxCapPerUser` invariantLogic error$0
- Vultisig: Most users won't be able to claim their share of Uniswap feesLogic error$0
- Thorchain: ThorChain will be informed wrongly about the unsuccessful ETH transfers due to the incorrect events emissionsReentrancy$0
- BadgerDAO: Incorrect comparison logic in post-operation checksLogic error$0
- Thorchain: Incorrect call argument in `THORChain_Router::_transferOutAndCallV5`, leading to grief/steal of `THORChain_Aggregator`'s funds or DoSInteger overflow/underflow$0
- Vultisig: Vultisig whitelisting can be bypassed by anyoneAccess control$0
- Thorchain: Due to the use of `msg.value` in for loop, anyone can drain all the funds from the `THORChain_Router` contractReentrancy$0
- Thorchain: A malicious user can steal money out of the vault and other usersFront-running / MEV$0
- DittoETH: An attacker can mint free DUSD and liquidate the corresponding Short Record to earn liquidation rewardsLogic error$0
- DittoETH: Users can evade the `yDUSD` vault's withdrawal timelock mechanismLogic error$0
- DittoETH: Attacker can profit from discount feesLogic error$0
- DittoETH: Incorrect accounting bug of the `yDUSD` vault leads to total loss of depositors' `DUSD` assetsLogic error$0
- DittoETH: `DUSD` assets can be minted with less `ETH` collateral than requiredLogic error$0
- Gondi: Bidders might lose funds due to possible racing condition between `settleWithBuyout` and `placeBid`Logic error$0
- Exactly Protocol Update - Staking Contract: Precision Loss in `notifyRewardAmount` Function Causes Unclaimable RewardTokenInteger overflow/underflow$0
- Exactly Protocol Update - Staking Contract: Depositing to another receiver othan than `msg.sender` will lead to stuck funds by increasing `avgStart` without claimingLogic error$0
- Gondi: `confirmUnderwriter()` need to recalculate `getMinTimeBetweenWithdrawalQueues`Logic error$0
- Gondi: Incorrect accounting of `_pendingWithdrawal` in `queueClaiming` flowLogic error$0
- Gondi: Borrower signature could be reused in `emitLoan()`Reentrancy$0
- Exactly Protocol Update - Staking Contract: Some bad debt will not be cleared when it should which will cause accrual of bad debt decreasing the protocol's solvencyLogic error$0
- Velocimeter: pause or kill gauge can lead to FLOW token stuck in voterLogic error$0
- Velocimeter: Exercising a large amount of options gives significantly higher discounts than supposed to.Logic error$0
- Gondi: `loanLiquidation()` calculation of interest is not accurateLogic error$0
- Gondi: Function `refinanceFromLoanExecutionData()` does not check `executionData.tokenId == loan.nftCollateralTokenId`Logic error$0
- Exactly Protocol Update - Staking Contract: Liquidator will leave a pool with unassigned earnings on `Market::clearBadDebt()` free to claim for anyone when the repaid maturity is not the lastLogic error$0
- Gondi: Division before multiplication could lead to users losing 50% in `WithdrawalQueue`Integer overflow/underflow$0
- Velocimeter: If user merges their `veNFT`, they'll lose part of their rewardsLogic error$0
- Gondi: Incorrect circular array check in `_updatePendingWithdrawalWithQueue` flow, causing received funds to be added to the wrong queuesLogic error$0
- Gondi: Any liquidators can pretend to be a loan contract to validate offers, due to insufficient validationAccess control$0
- Exactly Protocol Update - Staking Contract: Market utilization ratio near 100% will DoS deposits as harvest tries to withdraw and revertsLogic error$0
- Exactly Protocol Update - Staking Contract: Frozen/paused Market that is harvested from in StakedEXA will DoS deposits leading to loss of yieldLogic error$0
- Gondi: `refinanceFull`/`addNewTranche` reusing a lender's signature leads to unintended behaviorSignature replay$0
- Gondi: `mergeTranches()`/`refinancePartial()` lack of `nonReentrant`Reentrancy$0
- Gondi: Hardcoded incorrect `getLidoData` timestamp, resulting in incorrect base point `Apr. Loans` can be validated with a substantially low `baseRate` interestLogic error$0
- Gondi: A malicious user can take on a loan using an existing borrower's collateral in `refinanceFromLoanExecutionData()`Access control$0
- Gondi: Function `addNewTranche()` should use `protocolFee` from `Loan` structLogic error$0
- Velocimeter: `ve_supply` is updated incorrectlyLogic error$0
- Velocimeter: The circulating_supply() of the Minter contract may revert, resulting in the inability of the Minter to periodically emit Flow tokensLogic error$0
- Velocimeter: voters cannot disable max lockLogic error$0
- Gondi: Function `settleWithBuyout()` does not call `LoanManager.loanLiquidation()` during a buyoutLogic error$0
- Velocimeter: `DepositWithLock` done via `OptionToken` can be abused to permanently lock a user positionLogic error$0
- Velocimeter: poke() may be dosLogic error$0
- Gondi: `validateOffer()` reentry to manipulate `exchangeRate`Reentrancy$0
- Exactly Protocol Update - Staking Contract: Setting a new market will make depositing to the market impossible when harvesting, DoSing depositsLogic error$0
- Gondi: Anyone can remove existing term without queueing through `setTerms()`Access control$0
- Gondi: Function `Pool.validateOffer()` does not work correctly in case `principalAmount > currentBalance`Logic error$0
- Gondi: Attacker can front-run and pass in empty terms, making it impossible to `confirmTerms()`Logic error$0
- Velocimeter: Voting power does not decay when calculating shares of flow emissions if the user does not vote again.Logic error$0
- Velocimeter: VotingEscrow MAX_DELEGATES value can lead to DOS on certain EVM-compatible chainsLogic error$0
- Velocimeter: Rewards supplied to a gauge, prior to its first depositor will be permanently lost.Logic error$0
- Gondi: `_baseLoanChecks()` check errors for expireLogic error$0
- Velocimeter: First liquidity provider of a newly created stable pair can cause DOS and loss of fundsLogic error$0
- Gondi: Collected fees are never transferred out of Pool contractLogic error$0
- Velocimeter: Incorrect calculation of TWAP in OptionTokenV4.getTimeWeightedAveragePrice() function.Logic error$0
- Gondi: `AuctionLoanLiquidator#placeBid` can be DoSLogic error$0
- Exactly Protocol Update - Staking Contract: Having no deposits in `StakedEXA` will lead to stuck rewards when harvestingLogic error$0
- Gondi: `loan.hash()` does not contain `protocolFee`Logic error$0
- Gondi: Function `distribute()` lacks access control allowing anyone to spam and disrupt the pool's accountingAccess control$0
- Velocimeter: `update_period(..)` leads to wrong calculation in weekly emissions breaking accounting for the protocolLogic error$0
- Velocimeter: User can make their `veNFT` unpokeable by voting for a to-be-killed gaugeLogic error$0
- Gondi: `distribute()` uses the wrong end time to break `maxSeniorRepayment`'s expectationsLogic error$0
- Gondi: `distribute()` when can't repay all lenders, may lack of notification to `LoanManager` for accountingLogic error$0
- Gondi: The attackers front-running `repayloans` so that the debt cannot be repaidLogic error$0
- Gondi: Inconsistent accounting of `undeployedAssets` might result in undesired optimal range in the poolLogic error$0
- Gondi: `confirmBaseInterestAllocator()` change `BaseInterestAllocator` may pay large `getReallocationBonus`Logic error$0
- Velocimeter: `Voter.replaceFactory()` and `Voter.addFactory()` functions are broken.Logic error$0
- Gondi: Incorrect protocol fee implementation results in `outstandingValues` to be mis-accounted in Pool.solLogic error$0
- Gondi: `triggerFee` is stolen from other auctions during `settleWithBuyout()`Logic error$0
- Exactly Protocol Update - Staking Contract: Attackers will reset `avgStart` of any user making rewards stuck for longer and get lost to savingsLogic error$0
- Gondi: Merging tranches could make `_loanTermination()` accounting incorrectLogic error$0
- Gondi: `addNewTranche()` no authorization from borrowerAccess control$0
- Common Stableswap: stale price can be prolonged Oracle manipulation$0
- Curves Protocol: Theft of holder fees when `holderFeePercent` was positive and is set to zeroLogic error$0
- Curves Protocol: `Curves::_buyCurvesToken()`, Excess of Eth received is not refunded back to the user.Logic error$0
- Curves Protocol: Single token purchase restriction on curve creation enables snipingFront-running / MEV$0
- Curves Protocol: A subject creator within a single block can claim holder fees without holding due to unprotected reentrancy pathReentrancy$0
- Curves Protocol: Protocol and referral fee would be permanently stuck in the Curves contract when selling a tokenLogic error$0
- Curves Protocol: Unauthorized Access to `setCurves` FunctionAccess control$0
- Curves Protocol: `onBalanceChange` causes previously unclaimed rewards to be clearedLogic error$0
- Curves Protocol: Stuck rewards in `FeeSplitter` contractLogic error$0
- Curves Protocol: Withdrawing with amount `= 0` will forcefully set name and symbol to default and disable some functions for token subjectFront-running / MEV$0
- Curves Protocol: If a user sets their curve token symbol as the default one plus the next token counter instance it will render the whole default naming functionality obsoleteLogic error$0
- Curves Protocol: Unrestricted claiming of fees due to missing balance updates in `FeeSplitter`Logic error$0
- Predy: Chainlink's `latestRoundData` might return stale or incorrect resultsOracle manipulation$0
- Predy: One pair can steal another pair's Uniswap liquidity during `reallocate()` call if both pairs operate on the same Uniswap pool and both have the same upper and lower tick during reallocationLogic error$0
- Predy: Liquidation incorrectly tries to transfer token from Market instead of liquidator if `remainingMargin` is negativeLogic error$0
- Predy: PriceFeed does not return to the correct price for quote pairsOracle manipulation$0
- Predy: Incorrect price for negative ticks due to lack of rounding downOracle manipulation$0
- Predy: Reallocation depends on the `slot0` price, which can be manipulatedReentrancy$0
- Predy: Possible DoS When calling `GammaTradeMarket::_removePosition` will cause user position to not be able to get liquidatedLogic error$0
- Predy: Liquidators can bypass remaining negative margin check and leave the loss to the protocolOracle manipulation$0
- Predy: Reallocation incorrectly sends the exceed `quoteTokens` to Market contract instead of reallocatorLogic error$0
- Predy: `updateIRMParams` does not call `applyInterestForToken` before updating `irmParams` which leads to incorrect calculation of interest rate for subsequent trades.Logic error$0
- Predy: Liquidity manipulation is possible when tradingOracle manipulation$0
- Union Finance Update #2: Minimum borrow amount can be surpassed and borrower can be treated as being overdue earlier than their actual overdue timeLogic error$0
- Union Finance Update #2: Possible loss of funds, transfer functions can silently failReentrancy$0
- Union Finance Update #2: Any user can claim an unlimited amount of vouch in `VouchFaucet.sol`Logic error$0
- Krystal DeFi: The Protocol breaks the Allowance Mechanism of the NFTsLogic error$0
- Krystal DeFi: Swapping logic would be broken for some supported tokensLogic error$0
- Krystal DeFi: Wrong logic in `AUTO_COMPOUND` doesn't allow for swap to token1Logic error$0
- Krystal DeFi: The signatures are replayableLogic error$0
- Krystal DeFi: `_deductFees()` is incompatible with tokens that revert on zero value transfersLogic error$0
- MagicSea - the native DEX on the IotaEVM: Voting and bribe rewards can be hijacked during emergency unlock by already existing positionsLogic error$0
- MagicSea - the native DEX on the IotaEVM: Inconsistent check in `harvestPositionsTo()` functionLogic error$0
- MagicSea - the native DEX on the IotaEVM: `MlumStaking::addToPosition` should assing the amount multiplier based on the new lock duration instead of initial lock duration.Logic error$0
- MagicSea - the native DEX on the IotaEVM: Wrong call order for `setTopPoolIdsWithWeights`, resulting in wrong distribution of rewardsLogic error$0
- MagicSea - the native DEX on the IotaEVM: A voter lose bribe rewards if another voter voted before claim.Logic error$0
- MagicSea - the native DEX on the IotaEVM: Adding genuine BribeRewarder contract instances to a pool in order to incentivize users can be DOSedLogic error$0
- MagicSea - the native DEX on the IotaEVM: New staking positions still gets the full reward amount as with old stakings, diluting rewards for old stakersLogic error$0
- MagicSea - the native DEX on the IotaEVM: Non-functional vote() if there is one bribe rewarder for this poolLogic error$0
- MagicSea - the native DEX on the IotaEVM: Rewards might get stuck when approved actor renews a positionAccess control$0
- Illuminex: A malicious/ inactive relayer of VaultBitcoinWallet can make withdrawal mechanism stuck foreverBridge exploit$0
- MagicSea - the native DEX on the IotaEVM: Voting does not take into account end of staking lock periodLogic error$0
- MagicSea - the native DEX on the IotaEVM: Attacker can manipulate the `lockDuration` of other users positionsAccess control$0
- MagicSea - the native DEX on the IotaEVM: Voters will lose all bribe rewards forever if they do not claim their rewards after the last bribing periodLogic error$0
- MagicSea - the native DEX on the IotaEVM: Funds unutilized for rewards may get stranded in BribeRewarderLogic error$0
- MagicSea - the native DEX on the IotaEVM: Lack of support for fee on transfer, rebasing and tokens with balance modifications outside of transfers.Logic error$0
- MagicSea - the native DEX on the IotaEVM: Attacker can block all votes to a specific pool by triggering an overflow errorLogic error$0
- Fenix : Ineffective slippage protection allows for sandwich attacksFront-running / MEV$0
- Notional Leveraged Vaults: Pendle PT and Vault Incentives: _claimRewardToken() will update accountRewardDebt even when there is a failure during reward claiming, as a result, a user might lose rewards.Logic error$0
- Notional Leveraged Vaults: Pendle PT and Vault Incentives: `EtherFiLib::_initiateWithdrawImpl` will revert because rebase tokens transfer 1-2 less weiLogic error$0
- Notional Leveraged Vaults: Pendle PT and Vault Incentives: Selling sUSDe is vulnerable to sandwich attack when staked token is DAIFront-running / MEV$0
- Notional Leveraged Vaults: Pendle PT and Vault Incentives: Lido withdraw limitation will brick the withdraw process in an edge caseLogic error$0
- Notional Leveraged Vaults: Pendle PT and Vault Incentives: Protocol could be DOS by transfer error due to lack of code length checkLogic error$0
- Notional Leveraged Vaults: Pendle PT and Vault Incentives: Users can deny the vault from claiming reward tokensLogic error$0
- Notional Leveraged Vaults: Pendle PT and Vault Incentives: Wrong decimal precision resulted in the price being inflatedLogic error$0
- Notional Leveraged Vaults: Pendle PT and Vault Incentives: Loss of rewards due to continuous griefing attacks on L2 environmentLogic error$0
- Notional Leveraged Vaults: Pendle PT and Vault Incentives: The withdrawValue calculation in _calculateValueOfWithdrawRequest is incorrect.Logic error$0
- Notional Leveraged Vaults: Pendle PT and Vault Incentives: After a liquidator liquidates someone else’s position, it could cause a Denial of Service (DoS) when their own position also needs to be liquidated.Logic error$0
- Notional Leveraged Vaults: Pendle PT and Vault Incentives: Incorrect valuation of vault shareOracle manipulation$0
- Notional Leveraged Vaults: Pendle PT and Vault Incentives: Lack of slippage control on `_redeemPT` functionFront-running / MEV$0
- Notional Leveraged Vaults: Pendle PT and Vault Incentives: `_splitWithdrawRequest` will make invalid withdraw requests in an edge caseLogic error$0
- Notional Leveraged Vaults: Pendle PT and Vault Incentives: Malicious users can steal reward tokens via re-entrancy attackReentrancy$0
- Notional Leveraged Vaults: Pendle PT and Vault Incentives: Premature collateralization check in the BaseStakingVault.initiateWithdraw() function can leave accounts undercollateralizedLogic error$0
- Illuminex: Potential Congestion due to lack of `batchingInterval` and `maxTransfersPerBatch` modification Function in `OutgoingQueue` ContractLogic error$0
- Notional Leveraged Vaults: Pendle PT and Vault Incentives: `Kelp:_finalizeCooldown` cannot claim the withdrawal if adversary would requestWithdrawals with dust amount for the holderLogic error$0
- Illuminex: VaultBitcoinWallet` contract can not disable `relayersWhitelist` via `toggleRelayersWhitelistEnabled()` functionLogic error$0
- Notional Leveraged Vaults: Pendle PT and Vault Incentives: `rescueTokens` feature is brokenLogic error$0
- Palmera: Unauthorized Access Control Due to Retained Root Role When Root Safe Exits and Joins New OrgAccess control$0
- Palmera: Unauthorized Role Modification Vulnerability in setRole FunctionAccess control$0
- Mellow Modular LRTs: User may not receive profit from withdrawal fee as expected and attacker can steal value from poolLogic error$0
- Mellow Modular LRTs: `ratiosX96Value` rounds in favor of user and not vaultLogic error$0
- Mellow Modular LRTs: Corrupted oracle system if more than 2 underlying tokens are used and one of them is WSTETHLogic error$0
- DittoETH: Flawed if check causes inaccurate tracking of the protocol's `ercDebt` and collateralLogic error$0
- DittoETH: A successfully disputed redemption proposal has still increased the redemption fee base rate; exploit to depeg dUSDLogic error$0
- DittoETH: `ShortOrders` can be created with `ercAmount == minAskEth/2`, increasing the gas costs for matching large orders and disincentivizing liquidators from liquidating themLogic error$0
- Palmera: Malicious users can front-run host users safe management actions and add those safes as root for wrong orgFront-running / MEV$0
- DittoETH: Users can mint DUSD with less collateral than required, which gives them free DUSD and may open a liquidatable positionLogic error$0
- Palmera: Potential Protocol insolvency in `removeWholeTree` and `disconnectSafe`Logic error$0
- DittoETH: Valid redemption proposals can be disputed when bad debt occurs by applying it to a SR outside of the proposalLogic error$0
- DittoETH: An attacker can cancel other people's short ordersLogic error$0
- DittoETH: If a redemption has `N` disputable shorts, it is possible to dispute `N-1` times the redemption to maximize the penaltyLogic error$0
- Palmera: Safe owner/s can prevent being removed from organization by indefinitely increasing their child array Logic error$0
- DittoETH: `transferShortRecord`: Can transfer a newly created `ShortRecord` using a previously minted NFTAccess control$0
- DittoETH: `oracleCircuitBreaker`: Not checking if price information of asset is staleOracle manipulation$0
- DittoETH: The `shortOrder` verification bug on the `RedemptionFacet::proposeRedemption()` allows an attacker to leave a small `shortOrder` on the order book, leading to the protocol's bad debtLogic error$0
- DittoETH: The `colRedeemed` variable is wrongly retrieved in `LibBytes::readProposalData` functionLogic error$0
- DittoETH: Can manipulate the `C.SHORT_STARTING_ID` `ShortRecord` of the `TAPP`Logic error$0
- DittoETH: Closing a SR during a wrong redemption proposal leads to loss of fundsLogic error$0
- DittoETH: Valid redemption proposals can be disputed by decreasing collateralLogic error$0
- DittoETH: Partially filled Short Records created without a short order cannot be liquidated and exitedLogic error$0
- Aleo: Aleo prover/network DOS vector due to invalid `split` proofs being free to abuseLogic error$0
- BakerFi: All supplied WETH to Aave as a deposit by a Strategy will be irrecoverableLogic error$0
- Panoptic: When Burning a Tokenized Position `validate` should be done before flipping the `isLong` bits in `_validateAndForwardToAMM()`Logic error$0
- BakerFi: Protocol receives less harvest feesLogic error$0
- Panoptic: Wrong leg `chunkKey` calculation in `haircutPremia` functionLogic error$0
- Palmera: Ineffective Revocation of Multiple Roles in `disableSafeLeadRoles` FunctionLogic error$0
- BakerFi: `ETHOracle.getLatestPrice` needs to convert to 18 decimalsOracle manipulation$0
- Palmera: Incomplete Deletion of Organization State Leads to Residual Effects on New UsersLogic error$0
- Panoptic: `CREATE2` address collision during pool deployment allows for complete draining of the poolLogic error$0
- Panoptic: Incorrect validation during checking liquidity spreadLogic error$0
- BakerFi: Rounding-down of `flashFee` can result in calls to flash loan to revertReentrancy$0
- BakerFi: When harvesting a strategy and adjusting the debt, all the leftover collateral that is not used to swap the withdrawn collateral from Aave for WETH to repay the flashloan will be locked and lost in the Strategy contractFlash loan attack$0
- BakerFi: Vault is vulnerable to first depositor inflation attackFlash loan attack$0
- BakerFi: Vault can be DoSLogic error$0
- Panoptic: Premia calculation can cause DOSInteger overflow/underflow$0
- BakerFi: `deposit()` `afterDeposit` calculation formula is incorrectLogic error$0
- Panoptic: Premium owed can be calculated as a very big number due to reentrancy on uninitialized poolsReentrancy$0
- Panoptic: `_validatePositionList()` does not check for duplicate tokenIds, allowing attackers to bypass solvency checksOracle manipulation$0
- Palmera: setRole` Function Incorrectly Assigns `_safe.lead` without Validating `enabled` ParameterAccess control$0
- BakerFi: Multiple swap lack slippage protectionOracle manipulation$0
- Panoptic: Panoptic pool can be non-profitable by specific Uniswap governanceLogic error$0
- Panoptic: Partial transfers are still possible, leading to incorrect storage updates, and the calculated account premiums will be significantly different from what they should beLogic error$0
- Panoptic: `SettleLongPremium` is incorrectly implemented: premium should be deducted instead of addedLogic error$0
- BakerFi: `StrategyLeverage.harvest` doesn't account flashloan feeFlash loan attack$0
- Panoptic: Attacker can steal all fees from SFPM in pools with ERC777 tokensReentrancy$0
- Panoptic: The Main Invariant "Fees paid to a given user should not exceed the amount of fees earned by the liquidity owned by that user." can be broken due to slight difference when computing collected feeReentrancy$0
- Aleo: `unbond_public` logic causes issues for some delegators preventing partial withdrawalsLogic error$0
- Panoptic: `PanopticFactory` uses spot price when deploying new pools, resulting in liquidity manipulation when mintingOracle manipulation$0
- Panoptic: `_updateSettlementPostBurn()` may not correctly reduce `s_grossPremiumLast[chunkKey]`Logic error$0
- BakerFi: `BalancerFlashLender#receiveFlashLoan` does not validate the `originalCallData`Flash loan attack$0
- BakerFi: Min and maxAnswer never checked for oracle price feedOracle manipulation$0
- Panoptic: Overflow in `CollateralTracker` allows minting shares for freeInteger overflow/underflow$0
- Palmera: isSafeLead` Function Lacks Role Authorization Check, Leading to Unauthorized AccessAccess control$0
- Panoptic: ` validateCallback()` is vulnerable to a birthday attackLogic error$0
- Panoptic: `removedLiquidity` can be underflowed to lock other user's depositsInteger overflow/underflow$0
- Velvet Capital: Rebalancing : `updateWeights` could revert to due to strict check for swap. This would impact the timely rebalancing.Logic error$0
- SYMMIO v0.83 Update: PartyA's allocated balance could increase after `deferredLiquidatePartyA` is executedLogic error$0
- SYMMIO v0.83 Update: Deferred Liquidation can get stuck at step one of the liquidation process if the nonce incrementLogic error$0
- SYMMIO v0.83 Update: Suspended bridge transactions cannot be restoredLogic error$0
- SYMMIO v0.83 Update: Wrong precision when adding balance within the `restoreBridgeTransaction` functionLogic error$0
- SYMMIO v0.83 Update: Collateral can still be allocated to PartyA when the system is paused by exploiting the new internal transfer functionLogic error$0
- Intuition: Missing events for functions that change critical parameters in `EthMultiVault.sol`Access control$0
- Munchables: User's schnibbles rewards are not harvested in the `setLockDuration` functionLogic error$0
- Munchables: When `LockManager.lockOnBehalf` is called from `MigrationManager`, the user's `reminder` will be set to 0, resulting in fewer received `MunchableNFTs`Logic error$0
- Munchables: Invalid validation allows users to unlock earlyLogic error$0
- Munchables: Malicious User can call `lockOnBehalf` repeatedly extend a users `unlockTime`, removing their ability to withdraw previously locked tokensAccess control$0
- Munchables: Missing disapproval check in `LockManager.sol::approveUSDPrice` allows simultaneous approval and disapproval of a price proposalOracle manipulation$0
- Elfi: The implementation of `payExecutionFee()` didn't take `EIP-150` into consideration. Keepers can steal additional execution fee from users.Logic error$0
- Elfi: If stable tokens depeg, short funding fees will not be accounted properlyLogic error$0
- Elfi: Anyone can change the balance of an account to drain the entire portfolio vaultLogic error$0
- Elfi: Users can use weth to replace any margin token in createUpdatePositionMarginRequest()Logic error$0
- Elfi: Closing partial positions miscounts the settled feesLogic error$0
- Elfi: Incorrect settleFee process for cross-margin accountLogic error$0
- Elfi: When a position is closed, the execution fees for the canceled stop orders are lost for the userLogic error$0
- Elfi: `isHoldAmountAllowed` and `isSubAmountAllowed` wrong subtraction will result in DoSInteger overflow/underflow$0
- Elfi: Lack of execution fee mechanism in AccountFacetLogic error$0
- Elfi: `updateAllPositionFromBalanceMargin` function mistakenly increments positions "fromBalance"Logic error$0
- Elfi: If the stake token is minted from portfolio vault, positions from balances are not decreasedLogic error$0
- Elfi: Long orders always pays lesser in fees while short orders always pays higher due to oracle pricingLogic error$0
- Elfi: Pool value calculation skips accounting for stable token losses and short uPnLLogic error$0
- Elfi: Increasing leverage can make the position have "0" `initialMargin`Logic error$0
- Elfi: Uninitialized cache.redeemFee cause 0 redeem feeLogic error$0
- Elfi: Submitting mint request using user's trading balance and cancelling it will not refund tokens back to trading accountLogic error$0
- Elfi: Canceling a mint stake token can result in the execution fee being sent from the wrong vaultLogic error$0
- Elfi: Traders may decrease the loss via decrease the position's marginLogic error$0
- Elfi: User Collateral Cap Check IssueLogic error$0
- Elfi: redeem stake token may be Dos because there is not enough balance in stake pool.Logic error$0
- Elfi: Keepers can open positions that are already liquidatableLogic error$0
- Elfi: Pool value does not consider the open funding feesLogic error$0
- Elfi: Users profit in short cross will leave the fees in UsdPool instead of LpPoolLogic error$0
- Elfi: The balance.unsettledAmount is missing in the calculations for `getMaxWithdraw` and `isSubAmountAllowed` in UsdPool.solLogic error$0
- Elfi: Attacker can inflate stake rewards as he wants.Logic error$0
- Elfi: Future upgrades may be difficult or impossibleLogic error$0
- Elfi: `updatePositionFromBalanceMargin` function returns "0" if amount to be updated is negativeLogic error$0
- Elfi: Users can gas grief or completely block keepers from executing ordersLogic error$0
- Elfi: Mismatching funding fees can result in the protocol incurring a deficit or insolvency riskLogic error$0
- Elfi: If cross positions use the same margin token as collateral and close without liability, then fee accounting will be completely wrongLogic error$0
- Elfi: In Cross Margin mode, the user’s profit calculation is incorrect.Logic error$0
- Elfi: Call of ````revokeAllRole()```` would fail silentlyLogic error$0
- Elfi: A significant ````105,983```` gas cost of ````processExecutionFee()```` execution is not accounted in the keeper's compensationLogic error$0
- Elfi: Missing compensation for the ````21,000```` intrinsic gas costLogic error$0
- Elfi: Users can have positions with a margin lower than the allowed minimum marginLogic error$0
- Elfi: Cross positions that exceed the allowed margin can be openedLogic error$0
- Elfi: Contract will reach a point where users will not be able to call `deposit`Logic error$0
- Elfi: Excess fromBalance removal not added to other positions fromBalance's when leveraging upLogic error$0
- Elfi: LpPool's can become insolvent if shorters are in huge profitsLogic error$0
- Elfi: The keeper will suffer continuing losses due to miss compensation for L1 rollup feesLogic error$0
- Elfi: Lack of oracle setting in autoReducePositionsLogic error$0
- Elfi: Closing positions does not decrease the pool's entry price, leading to misleading pool value calculationsLogic error$0
- DYAD: `setUnboundedKerosineVault` not called during deployment, causing reverts when querying for Kerosene value after adding it as a Kerosene vaultLogic error$0
- DYAD: `VaultManagerV2.sol::burnDyad` function is missing an `isDNftOwner` modifier, allowing a user to burn another user's minted DYADLogic error$0
- Arbitrum Foundation: `BOLDUpgradeAction.sol` will fail to upgrade contracts due to error in the `perform` functionLogic error$0
- DYAD: Design flaw and mismanagement in vault licensing leads to double counting in collateral ratios and positions collateralized entirely with kerosineOracle manipulation$0
- Inverter Network: wrong `defaultCurrency` can be set in the `OptimisticOracleIntegrator` causing the `defaultBond` to be zeroLogic error$0
- DYAD: Incorrect deployment/missing contract will break functionalityLogic error$0
- DYAD: Unable to withdraw Kerosene from `vaultmanagerv2::withdraw` as it expects a `vault.oracle()` method which is missing in Kerosene vaultsOracle manipulation$0
- DYAD: Attacker can make `0` value `deposit()` calls to deny user from redeeming or withdrawing collateralOracle manipulation$0
- DYAD: Liquidating positions with bounded Kerosen could be unprofitable for liquidatorsLogic error$0
- Arbitrum Foundation: Inconsistent sequencer unexpected delay in DelayBuffer may harm users calling `forceInclusion()`Bridge exploit$0
- DYAD: No incentive to liquidate when `CR <= 1` as asset received `<` dyad burnedLogic error$0
- Arbitrum Foundation: Adversary can make honest parties unable to retrieve their assertion stakes if the required amount is decreasedLogic error$0
- DYAD: Attacker can frontrun user's withdrawals to make them revert without costsFlash loan attack$0
- DYAD: Missing enough exogenous collateral check in `VaultManagerV2::liquidate` makes the liquidation revert even if (DYAD Minted `>` Non Kerosene Value)Oracle manipulation$0
- DYAD: Users can get their Kerosene stuck until TVL becomes greater than Dyad's supplyLogic error$0
- Arbitrum Foundation: Edge from dishonest challenge edge tree can inherit timer from honest tree allowing confirmation of incorrect assertionFront-running / MEV$0
- DYAD: Attacker can frontrun to prevent vaults from being removed from the dNFT owner's positionFront-running / MEV$0
- DYAD: Flash loan protection mechanism can be bypassed via self-liquidationsLogic error$0
- DYAD: User can get their Kerosene stuck because of an invalid check on withdrawOracle manipulation$0
- DYAD: Value of kerosene can be manipulated to force liquidate usersOracle manipulation$0
- Inverter Network: FM_Rebasing_v1` is vounerable to just in time liquidityLogic error$0
- Inverter Network: LM_PC_Staking_v1&LM_PC_KPIRewarder - User can brick both contracts if he is first stakerLogic error$0
- Inverter Network: Payment Processors treat calls to non-contracts as a successful transfer callsLogic error$0
- LoopFi: Availability of deposit invariant can be bypassedFront-running / MEV$0
- Inverter Network: PP_Streaming_v1.sol#_findAddressInActiveStreams() - `activePaymentReceivers` can become so large that it's impossible to process more payments, effectively bricking the processorLogic error$0
- Inverter Network: Admin Can Bypass Important Checks and Timelock MechanismLogic error$0
- Inverter Network: Admin Can Bypass Checks for Privileged ModulesLogic error$0
- Inverter Network: LM_PC_Bounties_v1::contributorsNotChanged`check is not enough, could result in CLAIMANT adding additional contributors in the last minute Logic error$0
- Inverter Network: LM_PC_KPIRewarder_v1` if bond token has a blocklist and disputer set disputer address to a blocked address, result in DoSLogic error$0
- Inverter Network: LM_PC_Staking_v1` can be used for pyramid scheme, because it is using current stakers funds to reward othersLogic error$0
- Renzo: Lack of slippage and deadline during withdraw and depositOracle manipulation$0
- Renzo: Incorrect exchange rate provided to Balancer poolsOracle manipulation$0
- Renzo: Fetched price from the oracle is not stored in `xRenzoDeposit`Reentrancy$0
- Renzo: `calculateTVL` may run out of gas for modest number of operators and tokens breaking deposits, withdrawals, and tradesOracle manipulation$0
- Renzo: Not handling the failure of cross chain messagingReentrancy$0
- Renzo: Withdrawals and Claims are meant to be pausable, but it is not possible in practiceLogic error$0
- Renzo: Pending withdrawals prevent safe removal of collateral assetsLogic error$0
- Renzo: Potential arbitrage opportunity in the `xRenzoDeposit` L2 contractFront-running / MEV$0
- Renzo: Fixed hearbeat used for price validation is too stale for some tokensOracle manipulation$0
- Renzo: DOS of `completeQueuedWithdrawal` when ERC20 buffer is filledLogic error$0
- Renzo: `L1::xRenzoBridge` and `L2::xRenzoBridge` uses the `block.timestamp` as dependency, which can cause issuesLogic error$0
- Renzo: ETH withdrawals from EigenLayer always fail due to `OperatorDelegator`'s nonReentrant `receive()`Reentrancy$0
- Inverter Network: LM_PC_Staking_v1.sol - allocated rewards can never be fully distributed, leftovers cannot be rescuedLogic error$0
- Renzo: Withdrawals can fail due to deposits reverting in `completeQueuedWithdrawal()`Logic error$0
- Renzo: Incorrect calculation of queued withdrawals can deflate TVL and increase ezETH mint rateOracle manipulation$0
- Renzo: The amount of `xezETH` in circulation will not represent the amount of `ezETH` tokens 1:1Oracle manipulation$0
- Renzo: stETH/ETH feed being used opens up to 2 way `deposit<->withdrawal` arbitrageOracle manipulation$0
- Renzo: Withdrawals can be locked forever if recipient is a contractLogic error$0
- Renzo: Withdrawals of rebasing tokens can lead to insolvency and unfair distribution of protocol reservesOracle manipulation$0
- Renzo: Withdrawals logic allows MEV exploits of TVL changes and zero-slippage zero-fee swapsReentrancy$0
- Inverter Network: LM_PC_KPIRewarder_v1.sol#assertionResolvedCallback() - `LM_PC_KPIRewarder_v1` can be set as a callback address to another assertion in order to set `assertionPending = false`Logic error$0
- PoolTogether: The Prize Layer for DeFi: Price formula in `TpdaLiquidationPair._computePrice()` does not account for a jump in liquidatable balanceLogic error$0
- PoolTogether: The Prize Layer for DeFi: The RNG finish draw auction rewards are overpaid due to missing to account for the time it takes to fulfill the Witnet randomness requestLogic error$0
- PoolTogether: The Prize Layer for DeFi: Unfair Manipulation of Winning Chances Due to Stolen Yield on `Blast`Logic error$0
- PoolTogether: The Prize Layer for DeFi: `maxDeposit` doesn't comply with ERC-4626Logic error$0
- PoolTogether: The Prize Layer for DeFi: Potential ETH Loss Due to transfer Usage in Requestor Contract on `zkSync`Logic error$0
- PoolTogether: The Prize Layer for DeFi: The claimer's fee will be stolen by the winnerLogic error$0
- PoolTogether: The Prize Layer for DeFi: `drawTimeoutAt()` causes the prize pool to shutdown one draw earlierLogic error$0
- PoolTogether: The Prize Layer for DeFi: DoSed liquidations as `PrizeVault::liquidatableBalanceOf()` does not take into account the `mintLimit` when the token out is the assetLogic error$0
- PoolTogether: The Prize Layer for DeFi: `DrawManager.canStartDraw` does not consider retried RNG requests when determining if a new draw auction can be startedLogic error$0
- PoolTogether: The Prize Layer for DeFi: `maxRedeem` doesn't comply with ERC-4626Logic error$0
- PoolTogether: The Prize Layer for DeFi: User's might be able to claim their prizes even after shutdownLogic error$0
- PoolTogether: The Prize Layer for DeFi: Users can setup hooks to control the expannsion of tiersLogic error$0
- PoolTogether: The Prize Layer for DeFi: `TpdaLiquidationPair.swapExactAmountOut()` can be DOSed by a vault's mint limitLogic error$0
- PoolTogether: The Prize Layer for DeFi: Draw auction rewards likely exceed the available rewards, resulting in overpaying rewards or running into an `InsufficientReserve` errorLogic error$0
- PoolTogether: The Prize Layer for DeFi: Gas Manipulation by Malicious Winners in claimPrizes FunctionLogic error$0
- PoolTogether: The Prize Layer for DeFi: `Claimers` can receive less `feePerClaim` than they should if some prizes are already claimed or if reverts because of a reverting hookLogic error$0
- PoolTogether: The Prize Layer for DeFi: Vault portion calculation in `PrizePool::getVaultPortion()` is incorrect as `_startDrawIdInclusive` has been erasedLogic error$0
- PoolTogether: The Prize Layer for DeFi: `PUSH0` opcode Is Not Supported on Linea yetLogic error$0
- PoolTogether: The Prize Layer for DeFi: Witnet is not available on some networks listedLogic error$0
- PoolTogether: The Prize Layer for DeFi: Draws can be retried even if a random number is available or the current draw has finishedLogic error$0
- Tapioca: User Can Claim More Than totalAmount Due to Lack of Max Return Amount Check in _vested FunctionLogic error$0
- Arrakis Valantis SOT: ArrakisMetaVault::setModule Malicious executor can drain the vault by calling withdraw after initializePositionLogic error$0
- Arrakis Valantis SOT: ArrakisMetaVaultPrivate::fund No slippage control on private vault deposit can cause unlimited loss to ownerOracle manipulation$0
- Arrakis Valantis SOT: A malicious executor can delete the fees belonging to the owner of `ArrakisStandardManager`Access control$0
- Arrakis Valantis SOT: USDT is not supportedLogic error$0
- Arrakis Valantis SOT: Through rebalance(), an executor can drain 100% of vault reserves by minting cheap sharesLogic error$0
- Arrakis Valantis SOT: Adding liquidity can be `DoS`ed due to calculation mismatchesLogic error$0
- Tapioca Lending Engine : BBLiquidation::_updateBorrowAndCollateralShare Liquidator can avoid having his bonus reduced when position is close to bad-debtLogic error$0
- Midas: Malicious users can bypass the blacklist.Logic error$0
- Lavarage: Small loans will never be liquidated, generating bad debt for lendersLogic error$0
- zkSync: User might be able to double withdraw during migrationBridge exploit$0
- zkSync: L2SharedBridge l1LegacyBridge is not setBridge exploit$0
- zkSync: Freezed Chain will never be unfreeze since `StateTransitionManager::unfreezeChain` is calling `freezeDiamond` instead of `unfreezeDiamond`Logic error$0
- Lavarage: Collateral can be claimed back without repaying its corresponding loan due to insufficient instruction validationLogic error$0
- zkSync: State transition manager is unable to force upgrade a deployed ST, which invalidates the designed safeguard for 'urgent high risk situation'Logic error$0
- zkSync: `paymaster` will refund `spentOnPubdata` to userLogic error$0
- Beefy Cowcentrated Liquidity Manager: Accounting will be broken if `output` token is one of the `lpTokens`Logic error$0
- Kintsu: unsynced `staked` value when unbond open for DOS Logic error$0
- Sophon Farming Contracts: `setStartBlock()` doesn't change the block at which already existing pools will start accumulating pointsLogic error$0
- Tapioca DAO: `depositRepayAndRemoveCollateralFromMarket` function of MagnetarAssetModule can't be used on behalf of userLogic error$0
- Tapioca DAO: anyone with a `Pearlmit` approval to transfer `TapToken` can have their funds stolenLogic error$0
- Tapioca DAO: Options can be exercised preemptively due to timing delaysLogic error$0
- Tapioca DAO: `MagnetarMintXChainModule.sol`:`mintBBLendXChainSGL` can be used to manipulate user positions by abusing whitelist privilegesGovernance attack$0
- Tapioca DAO: Incorrect math means `data.removeAndRepayData.removeAssetFromSGL` will never work once SGL has accrued interestLogic error$0
- Tapioca DAO: `AirdropBroker`: Airdrops in epoch 4 can participate and exercise options in subsequent epochsLogic error$0
- Tapioca DAO: A single second in an epoch makes an user eligible for the entire epoch's rewardsLogic error$0
- Tapioca DAO: Incorrect decoding in `decodeLockTwpTapDstMsg`Logic error$0
- Tapioca DAO: Magnetar unwrap operations broken due to bad ownership and checksLogic error$0
- Tapioca DAO: Adversary can steal user's NFT's if they have set Magnetar as `isApprovedForAll == true`Access control$0
- Tapioca DAO: `burst()` does not return eth when action failsLogic error$0
- Kintsu: Dos in send_batch_unlock_requests function due to invalid range for agent's boned AZEROLogic error$0
- Tapioca DAO: Funds can be stolen through remote transfer functionalityAccess control$0
- Tapioca DAO: `TapiocaOptionBroker.participate()` with the approve authorization, it still cannot be executedLogic error$0
- Tapioca DAO: Gov (`twTAP`) and Tapioca Option can be monopolized by an attackerGovernance attack$0
- Tapioca DAO: Incorrect return value of function `BaseTapiocaOmnichainEngine._payNative()`Bridge exploit$0
- Tapioca DAO: Adversary can utilise approved to Magnetar `oTAP` and `tOLP` NFTsAccess control$0
- Tapioca DAO: Absence of restrictions on the sender of the `twTAP.claimsReward()` function could enable attackers to freeze reward tokens within the Tap token contractLogic error$0
- Tapioca DAO: `AirdropBroker`: When `block.timestamp == lastEpochUpdate + EPOCH_DURATION`, users can exercise options in the new epoch.Logic error$0
- Tapioca DAO: `_vested()` claimable amount calculation errorLogic error$0
- Tapioca DAO: Magnetar's `mintBBLendSGLLockTOLP` reverts when `lock` is set to falseLogic error$0
- Tapioca DAO: `twAML` weights can be griefed by burning tokensGovernance attack$0
- Tapioca DAO: `depositYBLendSGLLockXchainTOLP` function of the MagnetarAssetXChainModule will not work because it transfers Singularity tokens to the user before `_withdrawToChain`Logic error$0
- Tapioca DAO: `_lockOnTOB` function of MagnetarMintCommonModule will not work due to the missing approved asset for YieldBox before depositingLogic error$0
- Tapioca DAO: `MagnetarMintXChainModule` will not work as msg type is not allowedLogic error$0
- Tapioca DAO: Incorrect approval mechanism breaks all Magnetar functionalityLogic error$0
- Tapioca DAO: After `unregisterSingularity()`, position has not been unlocked and will be locked in the contractLogic error$0
- Tapioca DAO: Missing check on helper contract allows arbitrary actions and theft of assetsAccess control$0
- Tapioca DAO: `IMarket.execute.selector`, `_checkSender` bypass allows to execute arbitrary operationsAccess control$0
- Tapioca DAO: `_internalRemoteTransferSendPacket()` can't send the difference back to the userLogic error$0
- Tapioca DAO: Layerzero fee refund address is not handled correctlyLogic error$0
- Tapioca DAO: Adversary can steal approved `tOLP`s to Magnetar via `_paricipateOnTOLP`Logic error$0
- Tapioca DAO: Rescue request timestamp not reset in `TapiocaOptionLiquidityProvision.sol` contractLogic error$0
- Tapioca DAO: Max magnitude lock check will lead to a DoS and possible monopolization of `gov/Option` on `twTAP`/`TapiocaOptionBroker`Governance attack$0
- Revert Lend: `V3Utils.execute()` does not have caller validation, leading to stolen NFT positions from usersAccess control$0
- Revert Lend: `V3Oracle` susceptible to price manipulationOracle manipulation$0
- Revert Lend: Risk of reentrancy `onERC721Received` function to manipulate collateral token configs sharesReentrancy$0
- Revert Lend: `AutoRange` execution can be front-ran to avoid protocol fee, causing loss for protocolFront-running / MEV$0
- Revert Lend: `V3Vault::transform` does not validate the `data` input and allows a depositor to exploit any position approved on the transformerAccess control$0
- Revert Lend: Users' newly created positions can be prematurely closed and removed from the vault directly after they are createdAccess control$0
- Revert Lend: Owner of a position can prevent liquidation due to the `onERC721Received` callbackReentrancy$0
- Revert Lend: `DailyLendIncreaseLimitLeft` and `dailyDebtIncreaseLimitLeft` are not adjusted accuratelyLogic error$0
- Revert Lend: `AutoExit` could receive a reward calculated from the entire position's fund even if `onlyFee` is true in `AutoExit.execute()`Logic error$0
- Revert Lend: An attacker can easily bypass the collateral value limit factor checksLogic error$0
- Revert Lend: `dailyDebtIncreaseLimitLeft` is not updated in `liquidate()`Logic error$0
- Revert Lend: Lack of safety buffer in `_checkLoanIsHealthy` could subject users who take out the max loan into a forced liquidationOracle manipulation$0
- Revert Lend: Wrong global lending limit check in `_deposit` functionLogic error$0
- Metrom: Campaign owners can bypass protocol fees causing loss to the protocolLogic error$0
- Revert Lend: Large decimal of `referenceToken` causes overflow at oracle price calculationOracle manipulation$0
- Revert Lend: `setReserveFactor` fails to update global interest before updating reserve factorAccess control$0
- Revert Lend: No `minLoanSize` means liquidators will have no incentive to liquidate small positionsLogic error$0
- Revert Lend: Users can lend and borrow above allowed limitationsLogic error$0
- Revert Lend: Repayments and liquidations can be forced to revert by an attacker that repays minuscule amount of sharesFront-running / MEV$0
- Revert Lend: `V3Vault` is not ERC-4626 compliantLogic error$0
- Revert Lend: `V3Vault.sol` permit signature does not check receiving token address is USDCSignature replay$0
- Revert Lend: Tokens can't be removed as a collateral without breaking liquidations and other core functionsOracle manipulation$0
- Revert Lend: Users's tokens stuck in `AutoCompound` after Vault is deactivatedReentrancy$0
- Revert Lend: User might execute `PositionToken` of token set by previous token ownerAccess control$0
- Revert Lend: Due to interest rates update method, Interest-Free Loans are possible and the costs of DoS are reducedFlash loan attack$0
- Revert Lend: Incorrect liquidation fee calculation during underwater liquidation, disincentivizing liquidators to participateLogic error$0
- Revert Lend: Liquidation reward sent to msg.sender instead of recipientLogic error$0
- Revert Lend: Users cannot stop loss in AutoRange and AutoExitOracle manipulation$0
- Revert Lend: `_getReferencePoolPriceX96()` will show incorrect price for negative tick deltas in current implementation cause it doesn't round up for themOracle manipulation$0
- NFT marketplace signature does not bind to token id allowing order swapSignature replay$60k
- Metrom: Gas griefing vulnerability in `createCampaigns` functionLogic error$0
- Gamma - Locked Staking Contract: `earlyExitById()` and `exitLateById()` calls near the end of `lockPeriod` are vulnerable to attacks.Front-running / MEV$0
- Napier Finance - LST/LRT Integrations: Users can frontrun LSTs/LRTs tokens prices decrease in order to avoid lossesFront-running / MEV$0
- Napier Finance - LST/LRT Integrations: Incorrect checking in `receiveFlashLoan` can cause `swapETHForYt` to fail unexpectedly.Flash loan attack$0
- Napier Finance - LST/LRT Integrations: Less rsETH minted than intended in volatile conditions. due to zero slippage when staking ETH to mint rsETHLogic error$0
- Napier Finance - LST/LRT Integrations: `currentStakeLimit` depletes faster in some adapters, due to actual amount spent less than the input `stakeAmount`Logic error$0
- Napier Finance - LST/LRT Integrations: DOS in the claimWithdraw function due to an incorrect check of the lastFinalizedRequestId in the EEtherAdapter.solLogic error$0
- Napier Finance - LST/LRT Integrations: Adapters revert when 0 shares are minted, making it impossible to deposit under certain conditionsLogic error$0
- Napier Finance - LST/LRT Integrations: Missing stake limit validation on `RenzoAdapter._stake`Logic error$0
- Napier Finance - LST/LRT Integrations: Depositing `stETH` to puffer finance will revert due to wrong implementation of `PufETHAdapter._stake` callLogic error$0
- Napier Finance - LST/LRT Integrations: Kelp adapter won't allow users to deposit if `getAssetCurrentLimit` returns `0`Logic error$0
- Napier Finance - LST/LRT Integrations: Slippage on `MetapoolRouter.addLiquidityOneETHKeepYt`Logic error$0
- Metrom: Fee-on-Transfer Tokens in `createCampaigns` Function cause revert in `_processRewardClaim`.Logic error$0
- Kintsu: Minimum Stake Not Checked for Each Nomination AgentLogic error$0
- Kintsu: Inconsistency in Nomination Pool Joining LogicLogic error$0
- Kintsu: KIN-H02: Malicious users can prevent other users from redeeming rewards by manipulating `total_pooled` with duplicate withdrawal requestsLogic error$0
- AI Arena: NFTs can be transferred even if StakeAtRisk remains, so the user's win cannot be recorded on the chain due to underflow, and can recover past losses that can't be recovered (steal protocol's token)Logic error$0
- AI Arena: Players have complete freedom to customize the fighter NFT when calling `redeemMintPass` and can redeem fighters of types Dendroid and with rare attributesLogic error$0
- AI Arena: Almost all rarity rank combinations cannot be, and are not uniformly, generatedLogic error$0
- AI Arena: Constraints of `dailyAllowanceReplenishTime` and `allowanceRemaining` during `mint()` can be bypassed by using alias accounts & `safeTransferFrom()`Logic error$0
- AI Arena: Burner role cannot be revokedLogic error$0
- AI Arena: Malicious user can stake an amount which causes zero curStakeAtRisk on a loss but equal rewardPoints to a fair user on a winLogic error$0
- AI Arena: Non-transferable `GameItems` can be transferred with `GameItems::safeBatchTransferFrom(...)`Logic error$0
- AI Arena: Since you can reroll with a different fighterType than the NFT you own, you can reroll bypassing maxRerollsAllowed and reroll attributes based on a different fighterTypeLogic error$0
- AI Arena: Erroneous probability calculation in physical attributes can lead to significant issuesLogic error$0
- AI Arena: DoS in `MergingPool::claimRewards` function and potential DoS in `RankedBattle::claimNRN` function if called after a significant amount of rounds passedLogic error$0
- AI Arena: `FighterFarm::reRoll` won't work for nft id greater than 255 due to input limited to uint8Logic error$0
- AI Arena: Can mint NFT with the desired attributes by reverting transactionOracle manipulation$0
- AI Arena: Fighters cannot be minted after the initial generation due to uninitialized `numElements` mappingLogic error$0
- AI Arena: A locked fighter can be transferred; leads to game server unable to commit transactions, and unstoppable fightersAccess control$0
- AI Arena: Minter / Staker / Spender roles can never be revokedLogic error$0
- AI Arena: Player can mint more fighter NFTs during claim of rewards by leveraging reentrancy on the `claimRewards() function`Reentrancy$0
- AI Arena: Fighter created by `mintFromMergingPool` can have arbitrary weight and elementLogic error$0
- Convergence Convex Integration: Users will not be able to claim their their CVX rewards under certain conditionsLogic error$0
- Exactly Protocol: Profitable liquidations and accumulation of bad debt due to earnings accumulator not being triggered before liquidatingLogic error$0
- Exactly Protocol: Utilization rates are 0 when average assets are 0, which may be used to game maturity borrows / deposits / withdrawalsLogic error$0
- Exactly Protocol: When bad debts are cleared, there will be some untracked fundsLogic error$0
- Exactly Protocol: Unassigned pool earnings can be stolen when a maturity borrow is liquidated by depositing at maturity with 1 principalLogic error$0
- Exactly Protocol: Theft of unassigned earnings from a fixed poolLogic error$0
- Exactly Protocol: Fixed interest rates can be manipulated by a whale borrowerLogic error$0
- Exactly Protocol: The Rounding Done in Protocol's Favor Can Be Weaponized to Drain the ProtocolLogic error$0
- Exactly Protocol: Manipulation of the floating debt by updating `floatingBackupBorrowed`Logic error$0
- Exactly Protocol: `Market::liquidate()` will not work when most of the liquidity is borrowed due to wrong liquidator `transferFrom()` orderLogic error$0
- Exactly Protocol: Liquidation does not prioritize lowest LTV tokensLogic error$0
- Exactly Protocol: Bad debt isn't cleared when `earningsAccumulator` is lower than a fixed-pool bad debtLogic error$0
- Exactly Protocol: The claimable rewards amount for borrowers decreases over timeLogic error$0
- Exactly Protocol: borrow() maliciously let others to enter marketLogic error$0
- Convergence Convex Integration: CvxAssetStakerBuffer.sol#pullRewards() - If the `cvsAssetWrapper` is shutdown, `pullRewards` will revert every time and the rewards cannot be distributed to the `rewardReceiver`Logic error$0
- Exactly Protocol: `rewardData.releaseRate` is incorrectly calculated on `RewardsController::config()` when `block.timestamp > start` and `rewardData.lastConfig != rewardData.start`Logic error$0
- Exactly Protocol: DoS on liquidations when utilization rate is highFront-running / MEV$0
- Exactly Protocol: Expired maturities longer than `FixedLib.INTERVAL` with unaccrued earnings may be arbitraged and/or might lead to significant bad debt creationLogic error$0
- Wise Lending: `PendlePowerFarmToken:: totalLpAssetsToDistribute` may lead to temporary DOS due to price growth check being skipped during depositLogic error$0
- Wise Lending: Exploitation of the receive Function to Steal FundsReentrancy$0
- Abracadabra Money: Adjusting "_I_" will create a sandwich opportunity because of price changesFront-running / MEV$0
- Wise Lending: Off-by-one bug prevents the `_compareMinMax()` from detecting Chainlink aggregators' circuit-breaking eventsOracle manipulation$0
- Abracadabra Money: Staking contract is not able to support native USDB/WETHLogic error$0
- Wise Lending: Liquidating chaining can be achieved by liquidating token collateral with the highest `collateralFactor`Oracle manipulation$0
- Wise Lending: Precision loss in the calculation of the fee amounts and fee shares inside the `_preparePool` function of the `MainHelper` contractInteger overflow/underflow$0
- Abracadabra Money: Missing Return Statement in `_getReserves` Function in `MagicLpAggregator` ContractOracle manipulation$0
- Abracadabra Money: Anyone making use of the MagicLP's TWAP to determine token prices will be exploitable.Oracle manipulation$0
- Abracadabra Money: Users who deposited MIM and USDB tokens into BlastOnboarding may incur losses when the pool is created via bootstrapReentrancy$0
- Abracadabra Money: Miscalculation in addLiquidity of Router results in unauthorized spending of tokensAccess control$0
- Wise Lending: Exiting a farm on mainnet assumes a peg of `1:1` when swapping stETH for ETHOracle manipulation$0
- Abracadabra Money: Attacker can amplify a rounding error in MagicLP to break the I invariant and cause malicious pricingReentrancy$0
- Abracadabra Money: Loss of assumed functionality of the Onboarding contract in a highly-sensitive areaAccess control$0
- Wise Lending: A user can lose more value than he specifies in the spread when he enters a `PowerFarm`Logic error$0
- Abracadabra Money: Pool Creation Failure Due to WETH Transfer Compatibility Issue on Some ChainsOracle manipulation$0
- Wise Lending: Borrowers can DoS liquidations by repaying as little as 1 share.Front-running / MEV$0
- Wise Lending: Liquidators can pay less than required to completely liquidate the private collateral balance of an uncollateralized positionOracle manipulation$0
- Wise Lending: First depositor inflation attack in `PendlePowerFarmToken`Logic error$0
- Abracadabra Money: `LockingMultiRewards` contract on Blast does not configure gas yield nor token yield mode.Access control$0
- Wise Lending: The protocol allows borrowing small positions that can create bad debtOracle manipulation$0
- Abracadabra Money: User can grief bootstrap process by sending the cap amount of unlocked tokens to it.Access control$0
- Abracadabra Money: A user's tokens could be locked for an extended duration beyond their intention and without their controlLogic error$0
- Abracadabra Money: Factory::create() is vulnerable to reorg attacksFront-running / MEV$0
- Wise Lending: Unchecked return value bug on `TransferHelper::_safeTransferFrom()`Logic error$0
- Abracadabra Money: Permanent loss of yield for stakers in reward pools due to precision loss.Integer overflow/underflow$0
- Wise Lending: `PendlePowerManager` is incompatible with `PendleRouterV3`Oracle manipulation$0
- Abracadabra Money: MagicLpAggregator always returns lower than correct answer, leading to arbitrage lossOracle manipulation$0
- Wise Lending: Wrong use of `nftID` to check if a `PowerFarm` position is an Aave positionInteger overflow/underflow$0
- Wise Lending: User can erase their position debt for freeOracle manipulation$0
- Wise Lending: Incorrect calculation of lending shares in `_withdrawOrAllocateSharesLiquidation` can lead to revert and failure to liquidateLogic error$0
- Wise Lending: Incorrect bad debt accounting can lead to a state where the `claimFeesBeneficial` function is permanently bricked and no new incentives can be distributed, potentially locking pending and future protocol fees in the `FeeManager` contractOracle manipulation$0
- Abracadabra Money: Tokens yeild can not be set to claimable.Logic error$0
- Abracadabra Money: Oracle price can be manipulatedOracle manipulation$0
- Wise Lending: Lack of update when modifying pool feeLogic error$0
- Abracadabra Money: Less base tokens are transferred when selling quote tokens due to the precision loss that occurred in `_GeneralIntegrate()`Integer overflow/underflow$0
- Abracadabra Money: `MagicLpAggregator` can be incompatible with potential integrators due to incorrect `latestRoundData` functionOracle manipulation$0
- Wise Lending: User's attempt to deposit & withdraw reverts due to the calculation style inside `_calculateShares()`Logic error$0
- Wise Lending: Current heartbeat implementation may lead to a prolonged DoS for Chainlink OraclesOracle manipulation$0
- Abracadabra Money: MagicLpAggregator doesn't consider the dcimal of MagicLPOracle manipulation$0
- Wise Lending: Withdrawing uncollateralized deposits is possible even though the position is in liquidation modeLogic error$0
- Acala Network: `Unbond_instant` removes incorrect amount of sharesLogic error$0
- Acala Network: Early user can break pool via inflation attack due to no minimum liquidity check in the incentive contractLogic error$0
- Acala Network: Storage can be bloated with low liquidity positionsLogic error$0
- Convergence Convex Integration: User looses StakeDao rewards, if he misses to call `claimCvgCvxRewards` for cycleLogic error$0
- Acala Network: Incentive accumulation can be sandwiched with additional shares to gain advantage over long-term depositorsFront-running / MEV$0
- Convergence Convex Integration: Using `block.timestamp` for swap deadline offers no protectionLogic error$0
- Coinbase: Balance check during `MagicSpend` validation cannot ensure that `MagicSpend` has enough balance to cover the requested fundLogic error$0
- Coinbase: Remove owner calls can be replayed to remove a different owner at the same index, leading to severe issues when combined with lack of last owner guardLogic error$0
- Teller Finance: `_repayLoan` now allows for overpaying of loan and could cause DoS within `LenderCommitmentGroup_Smart`Logic error$0
- Teller Finance: `_sendOrEscrowFunds` will brick LCG funds causing insolvencyLogic error$0
- Teller Finance: `burnSharesToWithdrawEarnings` burns before math, causing the share value to increaseLogic error$0
- Teller Finance: Lender may not be able to close loan or get back lending token.Logic error$0
- Teller Finance: Utilization math should include `liquidityThresholdPercent`Logic error$0
- Teller Finance: `FlashRolloverLoan_G5` will fail for `LenderCommitmentGroup_Smart` due to `CollateralManager` pulling collateral from `FlashRolloverLoan_G5`Logic error$0
- Teller Finance: liquidateDefaultedLoanWithIncentive sends the collateral to the wrong accountLogic error$0
- Teller Finance: `LenderCommitmentGroup_Smart_test::addPrincipalToCommitmentGroup/burnSharesToWithdrawEarnings()` are vulnerable to slippage attacksFront-running / MEV$0
- Teller Finance: Malicious borrower can pay each payment and make its own loan default 1 month laterLogic error$0
- Teller Finance: Interest rate in `LenderCommitmentGroup_Smart` may be easily manipulated by depositing, taking a loan and withdrawingLogic error$0
- Teller Finance: Borrowers can brick the commitment group poolLogic error$0
- Teller Finance: `FlashRolloverLoan_G5` will not work for certain tokens due to not setting the approval to `0` after repaying a loanFlash loan attack$0
- Teller Finance: Not transferring collateral when submitting bids allows malicious users to create honeypot-style attacksLogic error$0
- Teller Finance: Drained lender due to `LenderCommitmentGroup_Smart::acceptFundsForAcceptBid()` `_collateralAmount` by `STANDARD_EXPANSION_FACTOR` multiplicationLogic error$0
- Teller Finance: Users can bypass auction mechanism for `LenderCommitmentGroup_Smart` liquidation mechanism for loans that are close to end of loanLogic error$0
- Teller Finance: The cycle payment due may span over approx. 2 cycles and block the borrower from payingLogic error$0
- Teller Finance: Incorrect selector in `FlashRolloverLoan_G5::_acceptCommitment()` does not match `SmartCommitmentForwarder::acceptCommitmentWithRecipient()`Logic error$0
- Teller Finance: `LenderCommitmentGroup` pools will have incorrect exchange rate when fee-on-transfer tokens are usedLogic error$0
- Teller Finance: `LenderCommitmentGroup_Smart.sol` cannot deploy pools with non-string symbol() ERC20s.Logic error$0
- Teller Finance: `LenderCommitmentGroup_Smart` picks the wrong Uniswap price, allowing borrowing at a discount by swapping before withdrawingLogic error$0
- Teller Finance: Borrowers can surpass `liquidityThresholdPercent` and borrow to near 100% of the principalLogic error$0
- Teller Finance: `LenderCommitmentGroup_Smart` does not use `mulDiv` when converting between token and share amounts, possibly leading to DoS or loss of fundsInteger overflow/underflow$0
- Teller Finance: Anyone can steal pool shares from lender group if no-revert-on-failure tokens are usedLogic error$0
- Teller Finance: If `repayLoanCallback` address doesn't implement `repayLoanCallback` try/catch won't go into the catch and will revert the txLogic error$0
- Teller Finance: Performing a direct multiplication in `_getPriceFromSqrtX96` will overflow for some uniswap poolsLogic error$0
- Teller Finance: APRs are lower than they shouldLogic error$0
- Teller Finance: liquidateDefaultedLoanWithIncentive can be gamed to avoid paying loans interestLogic error$0
- Taiko: Incorrect __Essential_init() function is used in TaikoToken making snapshooter devoid of calling snapshot()Logic error$0
- Canto: If a gauge that a user has voted for gets removed, their voting power allocated for that gauge will be lostLogic error$0
- TITLES Publishing Protocol: New creators unable to update the royalty target and the fee route for their worksLogic error$0
- Taiko: Users will never be able to withdraw their claimed airdrop fully in ERC20Airdrop2.sol contractLogic error$0
- Taiko: Validity and contests bond ca be incorrectly burned for the correct and ultimately verified transitionLogic error$0
- Taiko: First block proposer check in the `LibProposing._isProposerPermitted` function is errorneousAccess control$0
- Taiko: LibProposing:proposeBlock allows blocks with a zero parentMetaHash to be proposed after the genesis block and avoid parent block verificationLogic error$0
- Taiko: The top tier prover can not re-proveGovernance attack$0
- TITLES Publishing Protocol: Broken batch minting featureLogic error$0
- Taiko: There is no slippage check for the eth deposits processing in the `LibDepositing.processDeposits`Logic error$0
- Taiko: A recalled ERC20 bridge transfer can lock tokens in the bridgeBridge exploit$0
- TITLES Publishing Protocol: TitlesGraph::acknowledgeEdge() methods do not write acknowledgments to storageLogic error$0
- TITLES Publishing Protocol: Malicious users can block creators from acknowledging or deacknowledging an edgeAccess control$0
- Taiko: Invocation delays are not honoured when protocol unpausesFront-running / MEV$0
- TITLES Publishing Protocol: Incorrect encoding of bytes for EIP712 digest in `TitleGraph` causes signatures generated by common EIP712 tools to be unusableLogic error$0
- Taiko: Proposers would choose to avoid higher tier by exploiting non-randomness of parameter used in getMinTier()Logic error$0
- TITLES Publishing Protocol: Users can exploit the batch minting feature to avoid paying minting fees for tokensReentrancy$0
- Canto: Truncation exploitation of partial transfer systemInteger overflow/underflow$0
- Taiko: Taiko L1 - Proposer can maliciously cause loss of funds by forcing someone else to pay prover's feeGovernance attack$0
- Taiko: Signatures can be replayed in `withdraw()` to withdraw more tokens than the user originally intended.Signature replay$0
- Taiko: Bridge watcher can forge arbitrary message and drain bridgeAccess control$0
- Taiko: Gas issuance is inflated and will halt the chain or lead to incorrect base feeLogic error$0
- Taiko: The decision to return the liveness bond depends solely on the last guardianLogic error$0
- Taiko: Malicious caller of `processMessage()` can pocket the fee while forcing `excessivelySafeCall()` to failBridge exploit$0
- Taiko: Bridged tokens would be lost if sender and receiver are contracts that don't implement fallback/receiveBridge exploit$0
- Canto: `GaugeController::remove_gauge` will always revert whenever the gauge it's being called or has any weight attached to itInteger overflow/underflow$0
- TITLES Publishing Protocol: `Edition.supportsInterface` is not EIP1155 compliantLogic error$0
- Canto: When the `unlockOverride` flag is true, users can "freely" vote for gauge weights.Access control$0
- Canto: Improper adjustment of Lending Ledger configurationGovernance attack$0
- Canto: Improper parallel time systemLogic error$0
- Arcadia - Aerodrome integrations: Swapping large amounts of assets back and forth in an Aerodrome pool allows to bypass exposure limitsLogic error$0
- Arcadia - Aerodrome integrations: WrappedAerodromeAM.sol is not compatible with the Revert on Zero Value TokensLogic error$0
- Zivoe: EMA Data Point From Unlock Is DiscardedLogic error$0
- Zivoe: Protocol unable to get extra Rewards in OCY_Convex_CLogic error$0
- Zivoe: ZivoeYDL::distributeYield() will revert if protocolRecipients recipients length is smaller than residualRecipientsLogic error$0
- Zivoe: distributeYield() calls earningsTrancheuse() with outdated emaSTT & emaJTT while calculating senior & junior tranche yield distributionsLogic error$0
- Zivoe: Title: Inadequate Allowance Handling in convertAndForward Function of `OCT_DAO` & `OCT_YDL`.Logic error$0
- Zivoe: OCC_Modular::applyCombine will round APR downLogic error$0
- Zivoe: OCL_ZVE.sol::forwardYield relies on manipulable Uniswap V2 pool reserves leading to theft of fundsOracle manipulation$0
- Zivoe: Forwarding yield in `OCL_ZVE` is possible a lot more often than the enforced 30 daysLogic error$0
- Zivoe: ITO can be manipulatedLogic error$0
- Zivoe: Anyone could call `depositReward` with zero reward to extend the period finish timeLogic error$0
- Zivoe: cannot forward extra rewards from both OCY_Convex to OCT_YDL.Logic error$0
- Zivoe: Time calculation issues with exponential decayLogic error$0
- Zivoe: ````depositReward()```` with zero amount to get reward tokens stuck in ````ZivoeRewards```` contractsLogic error$0
- Zivoe: User cannot withdraw stakingToken due to incorrect calculation of _totalSupplyLogic error$0
- Zivoe: Revoking vesting schedule does not subtract user votes correctlyLogic error$0
- Zivoe: When APR late rate is lower than APR, an OCC locker bullet loan borrower can pay way less interests by calling the loanLogic error$0
- Zivoe: `ZivoeTranches#rewardZVEJuniorDeposit` function miscalculates the reward when the ratio traverses lower/upper bound.Logic error$0
- Zivoe: `ZivoeYDL::earningsTrancheuse()` always assumes that `daysBetweenDistributions` have passed, which might not be the caseLogic error$0
- Zivoe: OCL_ZVE::pushToLockerMulti() will revert due to incorrect assert() statements when interacting with UniswapV2Logic error$0
- Arcadia - Aerodrome integrations: Donating (and syncing) tokens to an Aerodrome allows to bypass exposure limitsLogic error$0
- Zivoe: Rewards are calculated as distributed even if there are no stakers, locking the rewards foreverLogic error$0
- Zivoe: DAO unable to withdraw their funds due to Convex admin actionLogic error$0
- Zivoe: ZivoeYDL::distributeYield yield distribution is flash-loan manipulatableFlash loan attack$0
- Ondo Finance: The `BURNER` cannot burn tokens from accounts not KYC verified due to the check in `_beforeTokenTransfer`.Logic error$0
- Ondo Finance: Users can lose access to funds due to minimum withdrawal limitsLogic error$0
- Ondo Finance: Inadequate handling of `BUIDL` redemption limit in `OUSG` instant managerLogic error$0
- Ondo Finance: `OUSGInstantManager` will allow excessive `OUSG` token minting during `USDC` depeg eventOracle manipulation$0
- Ondo Finance: Integration issue in `ousgInstantManager` with `BUIDL` if `minUSTokens` is set by blackrockLogic error$0
- Amphora Protocol: `Vault.claimRewards` can break if Convex changes the operatorLogic error$0
- Amphora Protocol: Reentrancy issue with the `withdraw` method of USDC. All tokens could be drained.Reentrancy$0
- Amphora Protocol: When Convex pool is shut down while collateral type is `CurveLPStakedOnConvex`, users unable to deposit that asset and protocol lose the ability to accept the asset as collateral furtherOracle manipulation$0
- Amphora Protocol: crvRewardsContract `getReward` can be called directly, breaking vaults `claimRewards` functionallityLogic error$0
- Amphora Protocol: Reorg attack on user's Vault deployment and deposit may lead to theft of fundsFront-running / MEV$0
- Amphora Protocol: Rounding error in `WUSDA` can result in loss of user funds, especially when manipulated by an attackerFlash loan attack$0
- Salty.IO: The user who withdraws liquidity from a particular pool is able to claim more rewards than they should by carefully selecting a `decreaseShareAmount` value such that the `virtualRewardsToRemove` is rounded down to zeroInteger overflow/underflow$0
- Salty.IO: Remove Liquidity has missing reserve1 DUST check, which can make reserve1 to be less than DUSTGovernance attack$0
- Salty.IO: Adversary can prevent updating price feed addresses by creating poisonous proposals ending in `_confirm`Oracle manipulation$0
- Salty.IO: If there is only one USDS borrower, he can never be liquidatedOracle manipulation$0
- Salty.IO: Minimium Collateral Check Can Be BypassedOracle manipulation$0
- Salty.IO: StakingRewards pools are not given their promised share of rewards due to incorrect calculationGovernance attack$0
- Salty.IO: Development Team might receive less SALT because there is no access control on `VestingWallet#release()`Access control$0
- Gitcoin Passport: `userTotalStaked` invariant will be broken due to vulnerable implementations in `release()`Logic error$0
- Salty.IO: Creation of token whitelisting proposals can be DOS'dReentrancy$0
- Salty.IO: Salt Rewards - Rewards related to Arbitrage profits for pools can be lostPrice manipulation$0
- Salty.IO: MinShares Slippage Parameters Are Ineffective For Initial DepositFront-running / MEV$0
- Salty.IO: Reusing a SALT that has already been used for voting can allow a malicious proposal to pass and compromise the protocolLogic error$0
- Salty.IO: `_getUniswapTwapWei()` will show incorrect price for negative ticks cause it doesn't round up for negative ticksOracle manipulation$0
- Salty.IO: DOS of proposals by abusing ballot names without important parametersLogic error$0
- Salty.IO: Incorrect calculation to check remaining ratio after reward in StableConfig.solOracle manipulation$0
- Salty.IO: First depositor can break staking-rewards accountingLogic error$0
- Salty.IO: Incorrect assumption in PoolMath.sol can cause underflow when zapping is usedInteger overflow/underflow$0
- Salty.IO: SALT staker can get extra voting power by simply unstaking their xSALTGovernance attack$0
- Salty.IO: Suboptimal arbitrage implementationInteger overflow/underflow$0
- Salty.IO: No proposal time limit traps sponsors of unpopular proposalsReentrancy$0
- Salty.IO: User can evade `liquidation` by depositing the minimum of tokens and gain time to not be liquidatedReentrancy$0
- Salty.IO: First Liquidity provider can claim all initial pool rewardsLogic error$0
- Salty.IO: Some rewards from POL will not be send to team wallet nor burnedGovernance attack$0
- Salty.IO: Unwhitelisting does not clear _arbitrageProfits, so re-whitelisting may result in an unfair distribution of liquidity rewardsGovernance attack$0
- Salty.IO: When forming POL the DAO will end up stucked with DAI and USDS tokens that cannot handleGovernance attack$0
- Salty.IO: Persistent Contract Call revert prevents finalizing a ballotGovernance attack$0
- Salty.IO: Attacker can take advantage of Chainlink price not occuring within it's 60 minute heartbeat to make PriceAggregator calls failOracle manipulation$0
- Salty.IO: PriceFeed is likely to be disabled in times of volatility, causing liquidations and borrows to freezeLogic error$0
- Salty.IO: The use of spot price by CoreSaltyFeed can lead to price manipulation and undesired liquidationsOracle manipulation$0
- Salty.IO: Ballots not yet past their deadline are incorrectly looped too by tokenWhitelistingBallotWithTheMostVotes()Governance attack$0
- Salty.IO: Caller of Upkeep may skip step 11 to save gasGovernance attack$0
- Salty.IO: changeWallets() can be confirmed immediately after proposalWallets() by manipulating activeTimelock beforehandGovernance attack$0
- Salty.IO: When borrowers repay USDS, it is sent to the wrong address, allowing anyone to burn Protocol Owned Liquidity and build bad debt for USDSLogic error$0
- Salty.IO: Impossible to change managed wallets with `proposeWallets` after first rejectionGovernance attack$0
- Flat Money Fix Review: Attacker can steal LPs funds by using different oracle prices in the same transactionOracle manipulation$0
- Flat Money Fix Review: Code asymmetry of `globalPositions.marginDepositedTotal`Integer overflow/underflow$0
- Phala Network: A cache that times out can be recoveredLogic error$0
- Phala Network: An attacker can bloat the Pink runtime storage with zero costsLogic error$0
- HydraDX: complete liquidity removal will result in permanent disable of the liquidity addition and prevent minting shares for the liquidity providers.Logic error$0
- HydraDX: Complete liquidity removals fail from stableswap poolsLogic error$0
- HydraDX: Malicious liquidity provider can put pool into highly manipulatable statePrice manipulation$0
- HydraDX: Re-adding assets to the omnipool can cause a problem with the oracleLogic error$0
- HydraDX: Storage can be bloated with low value liquidity positionsLogic error$0
- HydraDX: A huge loss of funds for all the users who try to remove liquidity after swapping got disabled at manipulated price.Logic error$0
- Oracle-free AMM invariant rounding allows slow drainLogic error$9k
- Althea Liquid Infrastructure: Holders array can be manipulated by transferring or burning with amount 0, stealing rewards or bricking certain functionsLogic error$0
- Althea Liquid Infrastructure: Malicious users can prevent holders from claiming their rewards during a reward cycle by skipping it.Front-running / MEV$0
- Althea Liquid Infrastructure: Withdrawal from NFTs can be temporarily blockedLogic error$0
- Althea Liquid Infrastructure: Distribution can be bricked, and double claims by a few holders are possible when owner calls `LiquidInfrastructureERC20::setDistributableERC20s`Access control$0
- Althea Liquid Infrastructure: `LiquidInfrastructureERC20.sol` disapproved holders keep part of the supply, diluting approved holders revenue.Logic error$0
- Perennial V2 Update #2: Liquidator can set up referrals for other usersLogic error$0
- Perennial V2 Update #2: Vault and oracle keepers DoS in some situations due to `market.update(account,max,max,max,0,false)`Logic error$0
- Perennial V2 Update #2: Vault global shares and assets change will mismatch local shares and assets change during settlement due to incorrect `_withoutSettlementFeeGlobal` formulaLogic error$0
- Perennial V2 Update #2: Vault checkpoints slightly incorrect conversion from assets to shares leads to slow loss of funds for long-time vault depositorsLogic error$0
- Perennial V2 Update #2: ChainlinkFactory will pay non-requested versions keeper feesOracle manipulation$0
- Perennial V2 Update #2: When vault's market weight is set to 0 to remove the market from the vault, vault's leverage in this market is immediately set to max leverage risking position liquidationLogic error$0
- Perennial V2 Update #2: Requested oracle versions, which have expired, must return this oracle version as invalid, but they return it as a normal version with previous version's price insteadLogic error$0
- Perennial V2 Update #2: Empty orders do not request from oracle and during settlement they use an invalid oracle version with `price=0` which messes up a lot of fees and funding accounting leading to loss of funds for the makersLogic error$0
- Perennial V2 Update #2: _loadContext() uses the wrong pendingGlobal.Logic error$0
- Perennial V2 Update #2: All transactions to claim assets from the vault will revert in some situations due to double subtraction of the claimed assets in market position allocations calculation.Logic error$0
- Perennial V2 Update #2: Makers can lose funds from price movement even when no long and short positions are opened, due to incorrect distribution of adiabatic fees exposure between makersLogic error$0
- Perennial V2 Update #2: Orders on Optimism chains can not be settled due to revert of ````keep()````Logic error$0
- Perennial V2 Update #2: If referral or liquidator is the same address as the account, then liquidation/referral fees will be lost due to local storage being overwritten after the `claimable` amount is credited to liquidator or referralLogic error$0
- Spectra: PrincipalToken is not ERC-5095 compliantLogic error$0
- Spectra: All yield generated in the IBT vault can be drained by performing a vault deflation attack using the flash loan functionality of the Principal Token contractFlash loan attack$0
- PoolTogether: `maxDeposit()` uses `yieldVault.maxDeposit()` but `_depositAndMint()` uses `yieldVault.mint()`Integer overflow/underflow$0
- Optimism Fault Proofs: Incorrect game type can be proven and finalized due to unsafe castBridge exploit$0
- Optimism Fault Proofs: Theft of initial bonds from proposers who are using smart walletsLogic error$0
- PoolTogether: Permit doesn't work with DAILogic error$0
- PoolTogether: `yieldFeeBalance` wouldn't be claimed after calling `transferTokensOut()`Oracle manipulation$0
- PoolTogether: Any fee claim lesser than the total `yieldFeeBalance` as unit of shares is lost and locked in the `PrizeVault` contractLogic error$0
- PoolTogether: `_maxYieldVaultWithdraw()` uses `yieldVault.convertToAssets()`Logic error$0
- PoolTogether: The winner can steal claimer fees, and force him to pay for the gasReentrancy$0
- PoolTogether: Lack of Slippage Protection in `withdraw`/`redeem` Functions of the VaultLogic error$0
- Optimism Fault Proofs: Loss of bond amounts on re-org attacksLogic error$0
- PoolTogether: `PrizeVault.maxDeposit()` doesn't take into account produced feesInteger overflow/underflow$0
- Optimism Fault Proofs: Fault game factory can be manipulated to DOS game type using malicious `l2BlockNumber`Logic error$0
- PoolTogether: Funds locked due to missing transfer checkLogic error$0
- Nouns DAO - Clients Incentives: Rewards can be stolen from other proposals and votes by extending auction revenue period with the help of bogus proposalsLogic error$0
- Nouns DAO - Clients Incentives: Eligibility of cancelled proposals makes it possible for `proposalEligibilityQuorumBps` controlling actor to create multiple eligible proposals, stealing rewards from all othersLogic error$0
- Nouns DAO - Clients Incentives: Rewards can be allocated for less than minimal reward period with the help of bogus proposalLogic error$0
- Goat Trading: No check for `initialEth` in `GoatV1Pair.takeOverPool()`.Logic error$0
- Goat Trading: The router is not compatible with fee on transfers tokensLogic error$0
- Goat Trading: It's possible to create pairs that cannot be taken overInteger overflow/underflow$0
- Goat Trading: Liquidity provider fees can be stolen from any pairLogic error$0
- Axis Finance: Auction creators have the ability to lock bidders' funds.Logic error$0
- Axis Finance: Attacker can forbid users to get refunded if sends enough bids on the EMPAM moduleLogic error$0
- Axis Finance: Inaccurate value is used for partial fill quote amount when calculating feesLogic error$0
- Axis Finance: Malicious user can overtake a prefunded auction and steal the deposited fundsLogic error$0
- Axis Finance: Bidders' funds may become locked due to inconsistent price order checks in MaxPriorityQueue and the _claimBid function.Logic error$0
- Axis Finance: Bidders can not claim their bids if the auction creator claims the proceeds.Logic error$0
- Axis Finance: If pfBidder gets blacklisted the settlement process would be broken and every other bidders and the seller would lose their fundsLogic error$0
- Axis Finance: It is possible to DoS batch auctions by submitting invalid AltBn128 points when biddingLogic error$0
- Axis Finance: [M-1]Logic error$0
- Axis Finance: Settlement of batch auction can exceed the gas limitLogic error$0
- Axis Finance: Module's gas yield can never be claimed and all yield will be lostLogic error$0
- Most Aleph Zero Bridge: Changing committee to a higher signature threshold will render a request from the previous committee un-processableLogic error$0
- Axis Finance: Bidder's payout claim could fail due to validation checks in LinearVestingLogic error$0
- Axis Finance: Unsold tokens from a FPAM auction, will be stuck in the protocol, after the auction concludesLogic error$0
- Axis Finance: Downcasting to uint96 can cause assets to be lost for some tokensInteger overflow/underflow$0
- Axis Finance: Overflow in curate() function, results in permanently stuck fundsInteger overflow/underflow$0
- Axis Finance: User's can be grieved by not submitting the private keyLogic error$0
- Axis Finance: Unsafe casting within _purchase function can result in overflowInteger overflow/underflow$0
- Axis Finance: Incorrect `prefundingRefund` calculation will disallow claimingLogic error$0
- Thruster: Tickets can be entered after prizes for current round have partially been distributedLogic error$0
- Thruster: Incorrect gas claiming logic in `ThrusterPoolDeployer`Logic error$0
- Thruster: Dynamic modification of `maxPrizeCount` affects prize claimsLogic error$0
- Thruster: `claimPrizesForRound` transfers the entire amount deposited for a prize regardless of the number of winnersLogic error$0
- M^0: Malicious minters can repeatedly penalize their undercollateralized accounts in a short peroid of time, which can result in disfunctioning of critical protocol functions, such as `mintM`.Logic error$0
- M^0: Validator threshold can be bypassed: a single compromised validator can update minter's state to historical stateLogic error$0
- M^0: An earner can still continue earning even after being removed from the approved list.Access control$0
- WagmiLeverage V2: Liquidation bonus scales exponentially instead of linearly.Logic error$0
- WagmiLeverage V2: When the amout of token acquired by a flash loan exceeds the expected value, the callback function will fail.Flash loan attack$0
- Decent: Permanent loss of tokens if swap data gets outdatedBridge exploit$0
- Decent: Potential loss of capital due to fixed fee calculationsBridge exploit$0
- Decent: DecentEthRouter.sol#_bridgeWithPayload() - Any refunded ETH (native token) will be refunded to the DecentBridgeAdapter, making them stuckBridge exploit$0
- Decent: Missing access control on UTB:receiveFromBridge allows UTB swaps to be executed without spending bridge fees while bypassing fee/swap instruction signature verificationAccess control$0
- RadicalxChange: Currently auctioned NFTs can be transferred to a different address in a specific edge caseLogic error$0
- Decent: Users will lose their cross-chain transaction if the destination router do not have enough WETH reserves.Logic error$0
- RadicalxChange: Auction fails if the 'Honorarium Rate' is 0%Logic error$0
- Decent: Due to missing checks on minimum gas passed through LayerZero, executions can fail on the destination chainBridge exploit$0
- RadicalxChange: Highest bidder can withdraw his collateral due to a missing check in _cancelAllBidsLogic error$0
- Decent: Users can use the protocol freely without paying any fees by calling the `DecentEthRouter::bridgeWithPayload()` function directly.Access control$0
- Mento: User Can Vote Even When They Have 0 Locked Mento (Edge Case)Governance attack$0
- Decent: Anyone can update the address of the Router in the DcntEth contract to any address they would like to set.Access control$0
- Decent: When `DecentBridgeExecutor.execute` fails, funds will be sent to a random addressAccess control$0
- Most Aleph Zero Bridge: Inconsistency in Handling WETH in `eth::most::receiveRequest`Bridge exploit$0
- Zap Protocol: Vesting contract cannot work with ETH, although it's supposed to.Logic error$0
- reNFT: The owners of a rental safe can continue to use the old guard policy contract for as long as they want, regardless of a new guard policy upgradeLogic error$0
- reNFT: `Guard::checkTransaction` restricts native ETH transfer from user's safesLogic error$0
- reNFT: Blacklisted extensions can't be disabled for rental safesLogic error$0
- reNFT: Blocklisting in payment ERC20 can cause rented NFT to be stuck in SafeLogic error$0
- WOOFi Swap: Potential damages due to incorrect implementation of the ````ZIP```` algorithmLogic error$0
- reNFT: Escrow contract can be drained by creating rentals that bypass execution invariant checksLogic error$0
- reNFT: Protocol does not implement EIP712 correctly on multiple occasionsLogic error$0
- reNFT: A malicious borrower can hijack any NFT with `permit()` function he rents.Access control$0
- WOOFi Swap: In the function _handleERC20Received, the fee was incorrectly chargedLogic error$0
- reNFT: All orders can be hijacked to lock rental assets forever by tipping a malicious ERC20Front-running / MEV$0
- reNFT: `RentPayload`'s signature can be replayedLogic error$0
- reNFT: Lender of a PAY order lending can grief renter of the paymentLogic error$0
- WOOFi Swap: `WooCrossChainRouterV4.crossSwap()` doesn't correctly check for slippageLogic error$0
- WOOFi Swap: Pool can be drainedOracle manipulation$0
- WOOFi Swap: Price manipulation by swapping any ````baseToken```` with itselfOracle manipulation$0
- reNFT: Assets in a Safe can be lostLogic error$0
- WOOFi Swap: WooFi oracle can fail to validate its price with Chainlink price feedOracle manipulation$0
- reNFT: DoS of Rental stopping mechanismLogic error$0
- reNFT: Risk of DoS when stoping large rental orders due to block gas limitLogic error$0
- reNFT: An attacker can hijack any ERC1155 token he rents due to a design issue in reNFT via reentrancy exploitationReentrancy$0
- reNFT: Incorrect ordering for deletion allows to flash steal rented NFT'sLogic error$0
- WOOFi Swap: Swaps can happen without changing the price for the next trade due to gamma = 0Logic error$0
- reNFT: Incorrect `gnosis_safe_disable_module_offset` constant leads to removing the rental safe's `module` without verificationAccess control$0
- reNFT: Malicious actor can steal any actively rented NFT and freeze the rental payments (of the affected rentals) in the `escrow` contractLogic error$0
- reNFT: paused ERC721/ERC1155 could cause stopRent to revert, potentially causing issues for the lender.Logic error$0
- reNFT: A malicious lender can freeze borrower's ERC1155 tokens indefinitely because the guard can't differentiate between rented and non-rented ERC1155 tokens in the borrower's safe.Logic error$0
- reNFT: DOS possible while stopping a rental with erc777 tokensLogic error$0
- reNFT: Attacker can lock lender NFTs and ERC20 in the safe if the offer is set to partialLogic error$0
- reNFT: Upgrading modules via `executeAction()` will brick all existing rentalsLogic error$0
- reNFT: An attacker is able to hijack any ERC721 / ERC1155 he borrows because guard is missing validation on the address supplied to function call `setFallbackHandler()`Access control$0
- Most Aleph Zero Bridge: Most will not work with tokens with high decimals due to overflow Integer overflow/underflow$0
- Most Aleph Zero Bridge: Attacker can initialize `Most.sol` to set critical parametersAccess control$0
- Perpetual: Two Pyth prices can be used in the same transaction to attack the LP poolsOracle manipulation$0
- Amphor: Exchange rate is calculated incorrectly when the vault is closed, potentially leading to funds being stolenLogic error$0
- Perpetual: Price band caps apply to decreasing orders, but not to liquidationsLogic error$0
- Perpetual: In certain cases, users are unable to settle their orders with the PartialFill trade type.Logic error$0
- Perpetual: Attackers can sandwich their own trades up to the price bandsLogic error$0
- Perpetual: No slippage control on maker LP `deposit()`/`withdraw()`Logic error$0
- Perpetual: Withdrawal caps can be bypassed by opening positions against the SpotHedgeBaseMakerLogic error$0
- Perpetual: There may be excess funds in the PnL pool or bad debt due to the funding fee.Logic error$0
- Amphor: Claim functions don't validate if the epoch is settledLogic error$0
- Perpetual: Incorrect premium calculation in OracleMakerLogic error$0
- Perpetual: OracleMaker's price with spread does not take into account the new positionLogic error$0
- Perpetual: Funding Fee Rate is calculated based only on the Oracle Maker's skew but applied across the entire market, which enables an attacker to generate an extreme funding rate for a low cost and leverage that to their benefitReentrancy$0
- Perpetual: SpotHedgeBaseMaker LPs will be able to extract value during a USDT/USDC de-pegLogic error$0
- Amphor: The `_zapIn` function may unexpectedly revert due to the incorrect implementation of `_transferTokenInAndApprove`Logic error$0
- Perpetual: Attackers can create positions that have no incentive to be liquidatedLogic error$0
- Tapioca: DoS in BBLeverage and SGLLeverage due to using wrong leverage executor interfaceLogic error$0
- Tapioca: Balancer using safeApprove may lead to revert.Logic error$0
- Tapioca: `getCollateral` and `getAsset` functions of the AssetTotsDaiLeverageExecutor contract decode data incorrectlyLogic error$0
- Tapioca: TOFTOptionsReceiverModule will have the user lose the whole output TAP when requested to exercise all eligible optionsLogic error$0
- Tapioca: BBLiquidation::_liquidateUser liquidator can bypass protocol fee on liquidation by returning returnedShare == borrowShareLogic error$0
- Tapioca: Multiple contracts cannot be pausedAccess control$0
- Tapioca: Composing approval with other messages is subject to DoSFront-running / MEV$0
- Tapioca: USDO’s MSG_TAP_EXERCISE compose messages where exercised options must be withdrawn to another chain will always fail due to wrongly requiring sendParam's to address to be whitelisted in the ClusterBridge exploit$0
- Tapioca: `mTOFT` can be forced to receive the wrong ERC20 leading to token lockupAccess control$0
- Tapioca: `_computeClosingFactor` function will return incorrect values, lower than needed, because it uses `collateralizationRate` to calculate the denominatorLogic error$0
- Tapioca: Penrose::_depositFeesToTwTap can unexpectedly revert due to amount rounded downLogic error$0
- Tapioca: BBLiquidation/SGLLiquidation::_updateBorrowAndCollateralShare liquidator can bypass bad debt handling to ensure whole liquidation rewardLogic error$0
- Tapioca: Allowances is double spent in BBLeverage's and SGLLeverage's `sellCollateral()`Logic error$0
- Tapioca: Balancer rebalance operation is permanently blocked whenever owner assigns `rebalancer` role to some other addressAccess control$0
- Tapioca: All ETH can be stolen during rebalancing for `mTOFTs` that hold nativeBridge exploit$0
- Tapioca: The repaying action in `BBLeverage.sellCollateral` function pulls YieldBox shares of asset from wrong addressLogic error$0
- Tapioca: Singularity::removeAsset share can become zero due to rounding down, and any user can be extracted some amount of assetLogic error$0
- Tapioca: Not properly tracking debt accrual leads mintOpenInterestDebt() to lose twTap rewardsLogic error$0
- Tapioca: Unupdated totalBorrow After BigBang LiquidationLogic error$0
- Tapioca: Wrong parameter in remote transfer makes it possible to steal all USDO balance from usersLogic error$0
- Tapioca: Gas parameters for Stargate swap are hardcoded leading to stuck messagesLogic error$0
- Tapioca: Incorrect `tapOft` Amounts Will Be Sent to Desired Chains on Certain ConditionsLogic error$0
- Tapioca: Liquidation fees are permanently frozen on Penrose YB accountLogic error$0
- Tapioca: Operation residual is lost for the user of BBLeverage's and SGLLeverage's `sellCollateral()`Logic error$0
- Tapioca: Not considering fees when wrapping mtOFTs leads to DoS in leverage executorsLogic error$0
- Tapioca: Secondary Big Bang market rates can be manipulated due to not triggering penrose.reAccrueBigBangMarkets(); when leveragingPrice manipulation$0
- Tapioca: buyCollateral() does not work properlyLogic error$0
- Tapioca: Unprotected `executeModule` function allows to steal the tokensAccess control$0
- Tapioca: SGL and BB repay do not round up both on allowance spending and elastic amountInteger overflow/underflow$0
- Tapioca: StargateRouter cannot send payloads and rebalancing of ERC20s is brokenAccess control$0
- Tapioca: Unpausing with accrue timestamp reset can remove the accrual between last recorded accrue time and pausing timeLogic error$0
- Tapioca: Malicious MarketHelper contract can be used in TOFTMarketReceiverModule's leverageUpReceiver and marketRemoveCollateralReceiver functionsLogic error$0
- Tapioca: BBCommon::_accrue wrong value is used to prevent overflowInteger overflow/underflow$0
- Tapioca: Unverified `_srcChainSender` parameter allows to impersonate the senderBridge exploit$0
- Tapioca: `leverageAmount` is incorrect in `SGLLeverage.sellCollateral` function due to calculation based on the new states of YieldBox after withdrawalLogic error$0
- Tapioca: BBLeverage::sellCollateral is unusable due to wrong asset deposit attempt in YieldBoxLogic error$0
- Tapioca: Leverage borrowing with stale rate can atomically create bad debt with no prior positions and no investmentOracle manipulation$0
- Tapioca: Stargate Pools conversion rate leads to token accumulation inside the Balancer contractLogic error$0
- Tapioca: Variable opening fee will always be wrongly computed if collateral is not a stablecoinLogic error$0
- Tapioca: TOFTOptionsReceiverModule miss cross-chain transformation for deposit and lock amountsLogic error$0
- Tapioca: Underflow Vulnerability in `Market::_allowedBorrow` Function: Oversight with Pearlmit Allowance HandlingInteger overflow/underflow$0
- Tapioca: BBLeverage's and SGLLeverage's `buyCollateral()` remove the required funds from the target twiceLogic error$0
- Tapioca: exerciseOptionsReceiver() Lack of Ownership Check for oTAP, Allowing Anyone to Use oTAPTokenIDAccess control$0
- Tapioca: TOFTOptionsReceiverModule's and UsdoOptionReceiverModule's exerciseOptionsReceiver can lose the option payment providedLogic error$0
- Tapioca: Withdrawing to other chain when exercising options won’t work as expected, leading to DoSBridge exploit$0
- Tapioca: mTOFTReceiver MSG_XCHAIN_LEND_XCHAIN_LOCK unable to executeGovernance attack$0
- Opus: Attacker can lock every trove withdrawalsLogic error$0
- Opus: A user can steal from the shrine by forcing redistribution of their trove; due to incorrect logic trove debt will be reset but yangs keptLogic error$0
- Opus: The `provide()` function does not reset withdrawal requests, allowing an attacker to bypass risk-free yield tactics protectionLogic error$0
- Opus: after shut, no pulled redistribution yang will be lockedLogic error$0
- Sandwichable liquidation bonus enables MEV extraction from borrowersFront-running / MEV$45k
- Opus: ERC4626 inflate issue mitigation is not sufficientFront-running / MEV$0
- Opus: Loss of liquidation compensation assets in absorbLogic error$0
- Rio Network: Heap is incorrectly stores the removed operator ID which can lead to division by zero in deposit/withdrawal flowLogic error$0
- Rio Network: Depositing to EigenLayer can revert due to round downs in converting shares<->assetsLogic error$0
- Rio Network: swapValidatorDetails incorrectly writes keys to memory, resulting in permanently locked beacon chain depositsLogic error$0
- Rio Network: The current idea of creating reETH and accepting several different assets in it exposes RIO users to lossesLogic error$0
- Rio Network: The protocol can't receive rewards because of low gas limits on ETH transfersLogic error$0
- Rio Network: Slashing penalty is unfairly paid by a subset of users if a deficit is accumulated.Logic error$0
- Rio Network: A part of ETH rewards can be stolen by sandwiching `claimDelayedWithdrawals()`Logic error$0
- Rio Network: Ether can stuck when an operators validators are removed due to an user front-runningLogic error$0
- Rio Network: `requestWithdrawal` doesn't estimate accurately the available shares for withdrawalsLogic error$0
- Rio Network: Requested withdrawal can be impossible to settle due to EigenLayer shares value appreciate when there are idle funds in deposit poolLogic error$0
- Rio Network: `reportOutOfOrderValidatorExits` does not updates the heap orderLogic error$0
- Rio Network: Setting the strategy cap to "0" does not update the total shares held or the withdrawal queueLogic error$0
- Rio Network: All operators can have ETH deposits regardless of the cap setted for them leading to miscalculated TVLLogic error$0
- Rio Network: Deposits may be front-run by malicious operator to steal ETHFront-running / MEV$0
- Rio Network: RioLRTIssuer::issueLRT reverts if deposit asset's approve method doesn't return a boolLogic error$0
- Rio Network: ETH withdrawers do not earn yield while waiting for a withdrawalLogic error$0
- Rio Network: Creating new withdrawal requests in conjunction with `settleEpochFromEigenLayer` will render system unusableLogic error$0
- Rio Network: Execution Layer rewards are lostLogic error$0
- Rio Network: Stakers can avoid validator penaltiesFront-running / MEV$0
- Rio Network: Malicious operators can `undelegate` theirselves to manipulate the LRT exchange rateLogic error$0
- Origami: An attacker can bypass the dynamic fees in `lovStEth` vault under certain depeg conditions, and extract value from honest depositorsOracle manipulation$0
- Smilee Finance: Position Manager providing the wrong strike when storing user's position dataLogic error$0
- Smilee Finance: Utilization rate for bonding curve purposes is calculated for a total of bull and bear usage, which can be abused to steal all vault fundsPrice manipulation$0
- Smilee Finance: Transferring ERC20 Vault tokens to another address and then withdrawing from the vault breaks `totalDeposit` accounting which is tied to deposit addressesLogic error$0
- Smilee Finance: Mint and sales can be dossed due to lack of safeApprove to 0Logic error$0
- Smilee Finance: PositionManager will revert when trying to return back to user excess of the premium transferred from the user when minting positionOracle manipulation$0
- Smilee Finance: FeeManager `receiveFee` and `trackVaultFee` functions allow anyone to call it with user-provided dvp/vault address and add any arbitrary feeAmount to any address, breaking fees accounting and temporarily bricking DVP smart contractAccess control$0
- Smilee Finance: Vault Inflation AttackLogic error$0
- Smilee Finance: The sign of delta hedge amount can be reversed by malicious user due to incorrect condition in `FinanceIGDelta.deltaHedgeAmount`Logic error$0
- Smilee Finance: Trading out of the money options has delta = 0 which breaks protocol assumptions of traders profit being fully hedged and can result in a loss of funds to LPsLogic error$0
- Smilee Finance: Whenever swapPrice > oraclePrice, minting via PositionManager will revert, due to not enough funds being obtained from user.Logic error$0
- Smilee Finance: If the vault's side token balance is 0 or a tiny amount, then most if not all IG Bear trades will revert due to incorrect check of computation error during delta hedge amount calculationLogic error$0
- Origami: hardcoding aave pool address is a serious aave integration flaw because valid pool addresses can changeLogic error$0
- Jala Swap: The functions about ```permit``` won't work and always revertLogic error$0
- zkSync: `Mailbox.requestL2Transaction()` checks the deposit limit of `msg.sender` (`L1WethBridge`) instead of the real depositor of weth from L1, as a result, after certain time, nobody will be able to deposit weth anymore from L1Bridge exploit$0
- zkSync: Reduction gate in binop operation is unsafeInteger overflow/underflow$0
- zkSync: Attacker can manipulate the sorted queue in log sorter to emit reverted logs and eventsLogic error$0
- zkSync: Version hash is not correctly enforced in code unpackerLogic error$0
- zkSync: Nonce ordering of EOA can be updated to "arbitrary" through an L1 txLogic error$0
- zkSync: Synchronization Issue Between L1 and L2 UpgradesReentrancy$0
- zkSync: EIP-155 is not enforced, allowing attackers/malicious operators to profit from replaying transactionsLogic error$0
- zkSync: Loss of funds for the sender when ``L1->L2`` TX fails in the bootloader on L2Reentrancy$0
- zkSync: TransactionValidator checks intrinsic costs against wrong valueLogic error$0
- zkSync: Operator can steal all gas provided by ANY user for `L1→L2` transactionsInteger overflow/underflow$0
- zkSync: Nonce Behavior Discrepancy Between zkSync Era and EIP-161Logic error$0
- zkSync: Attacker can forge arbitrary read value from memory in case `skip_if_legitimate_fat_ptr`Logic error$0
- zkSync: Deployment Nonce Does not Increment For a Reverted Child ContractLogic error$0
- zkSync: Missing range constraint on remainder check in `div` opcode implementationInteger overflow/underflow$0
- zkSync: Lack of access to ETH on L2 through ``L1->L2`` transactionsLogic error$0
- zkSync: Incorrect max precompile addressLogic error$0
- zkSync: Potential Gas Manipulation via Bytecode CompressionLogic error$0
- zkSync: Missing constraint on remainder in `shr` opcode implementationLogic error$0
- zkSync: `Mul/div` relation should not be enforced when divisor is zeroLogic error$0
- zkSync: Governance logic may enter a deadlockAccess control$0
- zkSync: Wrong encoding of the data in the `sendCompressedBytecode` functionAccess control$0
- zkSync: Discrepancy in Default Account BehaviorLogic error$0
- zkSync: Unit difference between transaction encoding and bootloader memory constantLogic error$0
- zkSync: Discrepancy in ECRECOVER Precompile when Using `Delegatecall`Signature replay$0
- Fenix Finance: Single-step process for critical ownership transfer is very riskyLogic error$0
- Fenix Finance: Protocol fees collected in PairFees are lost due to accrued yieldLogic error$0
- Fenix Finance: First liquidity provider of a stable pair can DOS the poolLogic error$0
- Real Wagmi #2 Update: Entrance fees are distributed wrongly in loans with multiple lendersLogic error$0
- Real Wagmi #2 Update: Fees aren't distributed properly for positions with multiple lenders, causing loss of funds for lendersLogic error$0
- Napier: Victim's fund can be stolen due to rounding error and exchange rate manipulationLogic error$0
- Napier: `swapUnderlyingForYt` revert due to rounding issuesLogic error$0
- Napier: The pool verification in `NapierRouter` is prone to collision attacksLogic error$0
- Napier: YT holder are unable to claim their interestLogic error$0
- Napier: Benign esfrxETH holders incur more loss than expectedLogic error$0
- Napier: `withdraw` function does not comply with ERC5095Logic error$0
- Napier: Users are unable to collect their yield if tranche is pausedLogic error$0
- Napier: Napier pool owner can unfairly increase protocol fees on swaps to earn more revenueFront-running / MEV$0
- Napier: Permissioned rebalancing functions leading to loss of assetsAccess control$0
- Napier: Unable to deposit to Tranche/Adaptor under certain conditionsLogic error$0
- Napier: SFrxETHAdapter redemptionQueue waiting period can DOS adapter functionsLogic error$0
- Napier: All yield could be drained if users set any ````> 0```` allowance to othersLogic error$0
- Napier: Lack of slippage control for `issue` functionLogic error$0
- Napier: LP Tokens always valued at 3 PTsLogic error$0
- Napier: Anyone can convert someone's unclaimed yield to PT + YTLogic error$0
- Origami: Adversary can block any `exit` due to `preCheck` reached `cap` by using flash-loan Flash loan attack$0
- INIT Capital: SwapType.CloseExactOut balance check too strict can be DOSedFront-running / MEV$0
- Ethereum Credit Guild: Auction manipulation by block stuffing and reverting on ERC-777 hooksAccess control$0
- Ethereum Credit Guild: There is no way to liquidate a position if it breaches `maxDebtPerCollateralToken` value creating bad debt.Governance attack$0
- Ethereum Credit Guild: Inability to offboard term twice in a 7-day period may lead to bad debt to the marketLogic error$0
- Ethereum Credit Guild: `PnL` system can be broken by large users intentionally or unintentionally.Access control$0
- Ethereum Credit Guild: LendingTerm.sol `_partialRepay()` A user cannot partial repay a loan with `0` interestLogic error$0
- Ethereum Credit Guild: Users staking via the `SurplusGuildMinter` can be immediately slashed when staking into a gauge that had previously incurred a lossLogic error$0
- INIT Capital: MarginTradingHook#updateOrder lacks access controlAccess control$0
- INIT Capital: `fillOrder` not properly cancel order when collateral of position is emptyLogic error$0
- Ethereum Credit Guild: The gauge status wasn't checked before reducing the user's gauge weight.Front-running / MEV$0
- Ethereum Credit Guild: Malicious borrower can decrease Guild holders rewardFlash loan attack$0
- Ethereum Credit Guild: The creation of bad debt (`mark-down` of Credit) can force other loans in auction to also create bad debtGovernance attack$0
- Ethereum Credit Guild: Anyone can prolong the time for the rewards to get distributedGovernance attack$0
- Ethereum Credit Guild: Rounding errors can cause ERC20RebaseDistributor transfers and mints to fail for underflowInteger overflow/underflow$0
- Ethereum Credit Guild: LendingTerm `debtCeiling` function uses `creditMinterBuffer` incorrectlyLogic error$0
- Ethereum Credit Guild: Wrong ProfitManager in GuildToken, will always revert for other types of gauges leading to bad debtAccess control$0
- Ethereum Credit Guild: `LendingTerm` inconsistency between debt ceiling as calculated in `borrow()` and `debtCeiling()`Logic error$0
- Ethereum Credit Guild: Anyone can steal all distributed rewardsFront-running / MEV$0
- Ethereum Credit Guild: Incorrect calculations in `debtCeiling`Logic error$0
- Ethereum Credit Guild: `LendingTerm::debtCeiling()` can return wrong debt as the `min()` is evaluated incorrectlyLogic error$0
- Ethereum Credit Guild: Inability to withdraw funds for certain users due to `whenNotPaused` modifier in `RateLimitedMinter`Logic error$0
- Ethereum Credit Guild: `SurplusGuildMinter.getReward()` is susceptible to DoS due to unbounded loopGovernance attack$0
- INIT Capital: LP unwrap / wrap is fully broken if master chef contract has insufficient reward token and block decollateralize wlp and wlp liquidationLogic error$0
- Ethereum Credit Guild: No check for sequencer uptime can lead to dutch auctions failing or executing at bad pricesLogic error$0
- Ethereum Credit Guild: Over 90% of the Guild staked in a gauge can be unstaked, despite the gauge utilizing its full debt allocationInteger overflow/underflow$0
- Ethereum Credit Guild: `totalBorrowedCredit` can revert, breaking gauges.Integer overflow/underflow$0
- INIT Capital: MarginTradingHook users could potentially be DOSedLogic error$0
- INIT Capital: `fillOrder` executor can be front-run by the order creator by changing order's `limitPrice_e36`, the executor's assets can be stolenFront-running / MEV$0
- Ethereum Credit Guild: Replay attack to suddenly offboard the re-onboarded lending termSignature replay$0
- Ethereum Credit Guild: Re-triggering the `canOffboard[term]` flag to bypass the DAO vote of the lending term offboarding mechanismGovernance attack$0
- Ethereum Credit Guild: ProfitManager's `creditMultiplier` calculation does not count undistributed rewards; this can cause value losses to usersGovernance attack$0
- Ethereum Credit Guild: `RateLimitedMinter` isn't used by `SimplePSM` resulting in Governance attacksGovernance attack$0
- Ethereum Credit Guild: Users can deflate other markets Guild holders rewards by staking less priced tokenGovernance attack$0
- INIT Capital: Order's creator can update `tokenOut` to arbitrary tokenFront-running / MEV$0
- Ethereum Credit Guild: The `userGaugeProfitIndex` is not set correctly, allowing an attacker to receive rewards without waitingGovernance attack$0
- Ethereum Credit Guild: Repayers using EOA accounts can be affected if bad debt is generated when they are repaying loansLogic error$0
- Paladin: Unbounded proxy length in LootVoteController can cause function to become unusableLogic error$0
- Arcadia: Utilisation Can Be Manipulated Far Above 100%Logic error$0
- Arcadia: Caching Uniswap position liquidity allows borrowing using undercollateralized Uni positionsLogic error$0
- Arcadia: Reentrancy in flashAction() allows draining liquidity poolsReentrancy$0
- Arcadia: Stargate `STG` rewards are accounted incorrectly by `StakedStargateAM.sol`Integer overflow/underflow$0
- Arcadia: L2 sequencer down will push an auction's price down, causing unfair liquidation prices, and potentially guaranteeing bad debtLogic error$0
- Arcadia: `AccountV1#flashActionByCreditor` can be used to drain assets from account without withdrawingLogic error$0
- Arcadia: `LendingPool#flashAction` is broken when trying to refinance position across `LendingPools` due to improper access controlAccess control$0
- Arcadia: `CREATE2` address collision against an Account will allow complete draining of lending poolsLogic error$0
- Arcadia: Dilution of Donations in TrancheLogic error$0
- Paladin: Division by Zero in `_createLoot` when Distributor change `lootCreator`, prevent Users from creating previous LootLogic error$0
- eBTC Protocol: Attacker can utilize function `CdpManager.redeemCollateral()` to break the order of sortedCdpsLogic error$0
- eBTC Protocol: The way fees are accounted can break the sorted list orderLogic error$0
- eBTC Protocol: Batched liquidations doesn't distribute bad debt on next batches in the listLogic error$0
- eBTC Protocol: When calling LeverageMacroBase.doOperation to open a CDP, the POST CALL CHECK may use the wrong cdpIdLogic error$0
- eBTC Protocol: Loss of user funds, as LeverageMacroReferences can't do an arbitrary system call to the function claimsSurplusCollShare in order to claim the extra surplus collateral gained from their liquidated or fully redeemed CdpsLogic error$0
- eBTC Protocol: Redemptions are inconsistent with other cdp's operationsLogic error$0
- eBTC Protocol: `fetchPrice` can return different prices in the same transactionOracle manipulation$0
- Paladin: There's no guarantee that the period updates continuously in LootCreatorLogic error$0
- Paladin: Some rewards are being duplicatedLogic error$0
- Paladin: Incorrect Allocation results in `getQuestAllocationForPeriod` when `questRewardToken` has Decimals other than 18Logic error$0
- Paladin: userQuestPeriodRewards` will be overwritten on second claimLogic error$0
- Paladin: Past loots can be indefinitely recreated Logic error$0
- Paladin: Changes of `questRewardsPerPeriod` didn't reflected on LootCreator's `totalQuestPeriodRewards`Reentrancy$0
- Collective: Since art pieces' size is not limited, attacker may block AuctionHouse from creating and settling auctionsLogic error$0
- Collective: Incorrect amounts of ETH are transferred to the DAO treasury in `ERC20TokenEmitter::buyToken()`, causing a value leak in every transactionReentrancy$0
- Collective: `encodedData` argument of `hashStruct` is not calculated perfectly for EIP712 singed messages in `CultureIndex.sol`Signature replay$0
- Collective: `ArtPiece.totalVotesSupply` and `ArtPiece.quorumVotes` are incorrectly calculated due to inclusion of the inaccessible voting powers of the NFT that is being auctioned at the moment when an art piece is createdGovernance attack$0
- Collective: `CultureIndex.sol#dropTopVotedPiece()` - Malicious user can manipulate topVotedPiece to DoS the whole CultureIndex and AuctionHouseLogic error$0
- Collective: Malicious delegatees can block delegators from redelegating and from sending their NFTsInteger overflow/underflow$0
- Collective: It may be possible to DoS AuctionHouse by specifying malicious creatorsGovernance attack$0
- Collective: `VerbsToken.tokenURI()` is vulnerable to JSON injection attacksLogic error$0
- Collective: Anyone can pause AuctionHouse in `_createAuction`Reentrancy$0
- Collective: The quorumVotes can be bypassedReentrancy$0
- Collective: ERC20TokenEmitter will not work after a certain period of timeInteger overflow/underflow$0
- Collective: Since buyToken function has no slippage checking, users can get less tokens than expected when they buy tokens directlyFront-running / MEV$0
- Collective: Bidder can use donations to get VerbsToken from auction that already endedGovernance attack$0
- Collective: `ERC20TokenEmitter::buyToken` function mints more tokens to users than it should doReentrancy$0
- Collective: Once EntropyRateBps is set too high, can lead to denial-of-service (DoS) due to an invalid ETH amountLogic error$0
- Collective: positionMapping for last element in heap is not updated when extracting max elementLogic error$0
- Collective: Violation of ERC-721 Standard in VerbsToken:tokenURI ImplementationLogic error$0
- Paladin: Loot.sol - Updating the vestingDuration with active vests can lead to unexpected slashingLogic error$0
- Canto: secRewardsPerShare Insufficient precisionInteger overflow/underflow$0
- Canto: update_market() market weight incorrectLogic error$0
- Paladin: EIP712 chainId is hardcoded which can cause replay attacks in case of hardforkSignature replay$0
- Canto: Loss of precission when calculating the accumulated CANTO per shareInteger overflow/underflow$0
- Canto: update_market() nextEpoch calculation incorrectLogic error$0
- Paladin: Possible to grief and prevent all users from claiming via front-running `multiClaim()` callsFront-running / MEV$0
- Asymmetry Finance: Lack of access control and value validation in the reward flow exposes functions to public accessAccess control$0
- Asymmetry Finance: Forced relock in VotiumStrategy withdrawal causes denial of service if Convex locking contract is shutdownLogic error$0
- Asymmetry Finance: VotiumStrategy withdrawal queue fails to consider available unlocked tokens causing different issues in the withdraw processLogic error$0
- Asymmetry Finance: Zero amount withdrawals of SafEth or Votium will brick the withdraw processLogic error$0
- Asymmetry Finance: Intrinsic arbitrage from price discrepancyLogic error$0
- Asymmetry Finance: Functions in the `VotiumStrategy` contract are susceptible to sandwich attacksFront-running / MEV$0
- Asymmetry Finance: AfEth collaterals cannot be balanced after ratio is changedLogic error$0
- Olas: CM can `delegatecall` to any address and bypass all restrictionsAccess control$0
- Asymmetry Finance: Missing circuit breaker checks in `ethPerCvx()` for Chainlink's price feedOracle manipulation$0
- Asymmetry Finance: It might not be possible to `applyRewards()`, if an amount received is less than 0.05 ethLogic error$0
- Asymmetry Finance: `price()` in `AfEth.sol` doesn't take afEth held for pending withdrawals into accountLogic error$0
- Asymmetry Finance: AfEth deposits could use price data from an invalid Chainlink responseOracle manipulation$0
- Olas: Bonds created in year cross epoch's can lead to lost payoutsGovernance attack$0
- Flat Money: Long traders unable to withdraw their assetsLogic error$0
- Flat Money: Trade fees can be avoided in limit ordersLogic error$0
- Flat Money: Malicious keepers can manipulate the price when executing an orderOracle manipulation$0
- Flat Money: In LeverageModule.executeOpen/executeAdjust, vault.checkSkewMax should be called after updating the global position dataLogic error$0
- Flat Money: Losses of some long traders can eat into the margins of othersLogic error$0
- Flat Money: Incorrect handling of PnL during liquidationLogic error$0
- Flat Money: The transfer lock for leveraged position orders can be bypassedLogic error$0
- Flat Money: Vault Inflation AttackInteger overflow/underflow$0
- Flat Money: Incorrect price used when updating the global position dataLogic error$0
- Flat Money: A malicious user can bypass limit order trading fees via cross-function re-entrancyReentrancy$0
- Flat Money: Oracle will not failover as expected during liquidationOracle manipulation$0
- Flat Money: Asymmetry in profit and loss (PnL) calculationsLogic error$0
- Flat Money: Fees are ignored when checks skew max in Stable Withdrawal / Leverage Open / Leverage AdjustLogic error$0
- Flat Money: Large amounts of points can be minted virtually without any costLogic error$0
- Flash-loanable veToken balance inflates emissions gauge weightsFlash loan attack$75k
- Particle Protocol: AddLiquidity and decreaseLiquidity missing slippage protectionFront-running / MEV$0
- Particle Protocol: Malicious lender can manipulate the fee to force borrower pay high premiumLogic error$0
- Particle Protocol: Excess tokens that are not accounted in the token premium portion stuck in the `ParticlePositionManager`Reentrancy$0
- Particle Protocol: reclaimLiquidity() Malicious borrowers can force LPs to be unable to retrieve Liquidity by closing and reopening the Position before it expiresLogic error$0
- Particle Protocol: Position can be opened even when the particle position manger does not hold the Uniswap V3 Position NFTLogic error$0
- Covalent: Validator cannot set new address if more than 300 unstakes in it's arrayLogic error$0
- Catalyst Exchange: No access control on IncentivzedMessageEscrow's ``submitMessage`` can lead to a short-term dos of usersAccess control$0
- Covalent: New staking between reward epochs will dilute rewards for existing stakers. Anyone can then front-run `OperationalStaking.rewardValidators()` to steal rewardsFront-running / MEV$0
- Covalent: Frontrunning validator freeze to withdraw tokensFront-running / MEV$0
- Covalent: OperationalStaking may not possess enough CQT for the last withdrawalLogic error$0
- Particle Protocol: malicious borrowers can follow reclaimLiquidity() then execute addPremium() to invalidate renewalCutoffTimeLogic error$0
- Particle Protocol: Underflow could happened when calculating Uniswap V3 position's fee growth and can cause operations to revertInteger overflow/underflow$0
- Particle Protocol: collectLiquidity() Lack of can specify recipient leads to inability to retrieve token1 after entering the blacklist of token0Logic error$0
- Particle Protocol: liquidatePosition() liquidator can construct malicious data to steal the borrower's profitLogic error$0
- Covalent: OperationalStaking::_unstake Delegators can bypass 28 days unstaking cooldown when enough rewards have accumulatedLogic error$0
- Particle Protocol: Impossible to open a position with a large `marginTo`Integer overflow/underflow$0
- Covalent: `validatorMaxStake` can be bypassed by using `setValidatorAddress()`Access control$0
- Particle Protocol: Modifying the loan term setting can default existing loansGovernance attack$0
- Particle Protocol: openPosition() Lack of minimum token0PremiumPortion/token1PremiumPortion limitLogic error$0
- Particle Protocol: Add premium doesn't collect feesLogic error$0
- Particle Protocol: openPosition() use stale feeGrowthInside0LastX128/feeGrowthInside1LastX128Logic error$0
- Particle Protocol: Liquidation condition should not factor the liquidation reward into the premiumsLogic error$0
- Olympus On-Chain Governance: High risk checks can be bypassed with extra `calldata` paddingGovernance attack$0
- Olympus On-Chain Governance: Nobody can cast for any proposalGovernance attack$0
- Olympus On-Chain Governance: Post-proposal vote quorum/threshold checks use a stale total supply valueLogic error$0
- LooksRare YOLO: Users can deposit "0" ether to any roundLogic error$0
- LooksRare YOLO: Rounds can not be immediately drawn after fulfillRandomWords due to VRF contracts reentrancy guardReentrancy$0
- LooksRare YOLO: The number of deposits in a round can be larger than MAXIMUM_NUMBER_OF_DEPOSITS_PER_ROUNDLogic error$0
- LooksRare YOLO: User can get free entries if the price of any whitelisted ERC20 token is greater than the round's `valuePerEntry`Logic error$0
- AlephZeroAMM: mint_fee` collects fee from adding and removing liquidityLogic error$0
- AlephZeroAMM: The owner of a farm can steal already accumulated rewardsLogic error$0
- AlephZeroAMM: Risk of Unintentional or Intentional User Rewards Prevention by Farm Contract OwnerLogic error$0
- Notional Update #5: The use of spot data when discounting is subjected to manipulationOracle manipulation$0
- Notional Update #5: Malicious users could block liquidation or perform DOSLogic error$0
- Notional Update #5: recover() using the standard transfer may not be able to retrieve some tokensLogic error$0
- Notional Update #5: getTargetExternalLendingAmount() when targetUtilization == 0 no check whether enough externalUnderlyingAvailableForWithdrawLogic error$0
- Notional Update #5: getTargetExternalLendingAmount() targetAmount may far less than the correct valueLogic error$0
- Notional Update #5: Unexpected behavior when calling certain ERC4626 functionsLogic error$0
- Notional Update #5: Low precision is used when checking spot price deviationLogic error$0
- JOJO Exchange Update: FundingRateArbitrage contract can be drained due to rounding errorInteger overflow/underflow$0
- Notional Update #5: getOracleData() maxExternalDeposit not accurateLogic error$0
- Notional Update #5: Lender transactions can be front-run, leading to lost fundsLogic error$0
- JOJO Exchange Update: FundRateArbitrage is vulnerable to inflation attacksInteger overflow/underflow$0
- Notional Update #5: Residual ETH not sent back when `batchBalanceAndTradeAction` executedLogic error$0
- Notional Update #5: `ExternalLending`Logic error$0
- Notional Update #5: Rebalance will be delayed due to revertLogic error$0
- Notional Update #5: _isExternalLendingUnhealthy() using stale factorsLogic error$0
- Notional Update #5: `wfCashERC4626`Logic error$0
- Notional Update #5: Residual ETH will not be sent back to users during the minting of wfCashLogic error$0
- Notional Update #5: Rebalance might be skipped even if the external lending is unhealthyLogic error$0
- INIT Capital: `_handleRepay` of `MoneyMarketHook` does not consider the actual debt shares of the `posId` inside the position manager and could lead to a user's tokens getting stuck inside the hookFront-running / MEV$0
- INIT Capital: `collateralizeWLp` can be bypassed even when collateralization is pausedReentrancy$0
- INIT Capital: `setPosMode` should not allow changing the mode when the new mode's `canRepay` status is disabledReentrancy$0
- INIT Capital: Lack of way to handle not fully repaid bad debt after liquidation after the lending pool share or WLP are fully seizedLogic error$0
- INIT Capital: Malicious user can steal native tokens of MoneyMarketHook callerReentrancy$0
- INIT Capital: Decimals of LendingPool don't take into account the offset introduced by VIRTUAL\_SHARESLogic error$0
- INIT Capital: API3 oracle timestamp can be set to future timestamp and block API3 Oracle usage to make code revert in underflowOracle manipulation$0
- INIT Capital: repay(), liquidate() and liquidateWLp() receive shares as argument, which may revert if from approval to tx settled blocks have passedLogic error$0
- INIT Capital: `TRST-M-8` from previous audit still presentLogic error$0
- INIT Capital: wLp tokens could be stolenLogic error$0
- INIT Capital: If wLP is blacklisted, then user will not be able to withdraw itLogic error$0
- INIT Capital: Admin configuration isAllowedForCollateral(mode, pool) can be bypassed by donating asset to the pool directly and then trigger sync cash via flashloanLogic error$0
- INIT Capital: setPosMode function doesn't check if wLp is whitelistedLogic error$0
- INIT Capital: When the `returnNative` parameter is set to true in the `_params` provided to `MoneyMarketHook.execute`, it is not handled properly and could disrupt user expectationsLogic error$0
- INIT Capital: Liquidations can be prevented by frontrunning and liquidating 1 debt (or more) due to wrong assumption in POS\_MANAGERFront-running / MEV$0
- Telcoin Platform: Wrong parameter when retrieving causes a complete DoS of the protocolLogic error$0
- Telcoin Platform: `StakingRewardsManager::topUp(...)` Misallocates Funds to `StakingRewards` ContractsLogic error$0
- Rounding direction lets attacker mint shares for free on first depositLogic error$120k
- PartyDAO: `PartyGovernanceNFT.sol#mint` - User can delegate another users funds to themselves and brick them from changing the delegationLogic error$0
- PartyDAO: `PartyGovernanceNFT` advertises but does not honor the ERC-4906 standardGovernance attack$0
- PartyDAO: `PartyGovernanceNFT#rageQuit()` can lead to token loss for users when dealing with zero-balance ERC20 during a `rageQuit()`Governance attack$0
- Ubiquity: LibUbiquityPool::mintDollar/redeemDollar reliance on outdated TWAP oracle may be inefficient for preventing depegOracle manipulation$0
- PartyDAO: Single host can unfairly skip veto period for proposal that does not have full host supportGovernance attack$0
- PartyDAO: `ETHCrowdfundBase.sol#_processContribution` - Possible DoS on finalization of crowdfund under certain conditionsReentrancy$0
- Ubiquity: LibTWAPOracle::update Providing large liquidity will manipulate TWAP, DOSing redeem of uADsOracle manipulation$0
- PartyDAO: The 51% majority can hijack the party's precious tokens through an arbitrary call proposal if the `AddPartyCardsAuthority` contract is added as an authority in the party.Flash loan attack$0
- PartyDAO: Some arbitrary proposal calls will fail because `executeProposal()` in `ProposalExecutionEngine` is not payableGovernance attack$0
- PartyDAO: `ETHCrowdfundBase.sol#processContribution` - Impossible to finalize crowdfund because of `minContribution` checkGovernance attack$0
- PartyDAO: `PartyGovernance.sol#accept` - `passThresholdBps` isn't cached for each proposal which can lead to problems if changed through another proposalGovernance attack$0
- NextGen: `MinterContract::payArtist` can result in double the intended payoutLogic error$0
- Truflation: TrufVesting.cancelVesting calculates end of vesting incorrectlyLogic error$0
- NextGen: The `RandomizerVRF` and `RandomizerRNG` do not produce hash value.Oracle manipulation$0
- NextGen: Multiple mints can brick any form of `salesOption` 3 mintingsInteger overflow/underflow$0
- NextGen: Attacker can reenter to mint all the collection supplyReentrancy$0
- NextGen: Permanent DoS due to non-shrinking array usage in an unbounded loopLogic error$0
- NextGen: If an airdrop happens before a mint the price could skyrocketLogic error$0
- NextGen: `getPrice` `salesOption` 2 can round down to the lower barrier, skipping the last time periodInteger overflow/underflow$0
- NextGen: Bidder Funds Can Become Unrecoverable Due to 1 second Overlap in `participateToAuction()` and `claimAuction()`Logic error$0
- Truflation: Users can fully drain the `TrufVesting` contractLogic error$0
- NextGen: Adversary can block `claimAuction()` due to push-strategy to transfer assets to multiple biddersLogic error$0
- NextGen: Unchecked return value of low-level `call()/delegatecall()`Logic error$0
- Truflation: Ended locks can be extendedLogic error$0
- NextGen: Attacker can drain all ETH from `AuctionDemo` when `block.timestamp == auctionEndTime`Reentrancy$0
- NextGen: Artist signatures can be forged to impersonate the artist behind a collectionAccess control$0
- NextGen: Vulnerability in `burnToMint` function allows double use of NFTReentrancy$0
- NextGen: User funds sent in excess are not refundedLogic error$0
- NextGen: On a Linear or Exponential Descending Sale Model, a user that mints on the last `block.timestamp` mints at an unexpected price.Logic error$0
- Truflation: `cancelVesting` will potentially not give users unclaimed, vested funds, even if giveUnclaimed = trueLogic error$0
- Open Dollar: Collateral could be transferred to an address, which is not `SAFEHandler` managed by the `SAFEManager`Logic error$0
- Open Dollar: Due to extremely short `votingDelay` and `votingPeriod`, governance is practically impossibleGovernance attack$0
- Open Dollar: Mismatch between the SAFE generated debt and the amount of the system tokens minted for the userLogic error$0
- Open Dollar: Unable to retrieve price information with CamelotRelayer contractOracle manipulation$0
- Open Dollar: SafeHandler contract doesn't have any method to call to `ODSafeManager.allowHandler()`, lead to DOS in some functionLogic error$0
- Open Dollar: Old permissions in handlerCan mapping are still attached to the safeHandler of a transferred safeLogic error$0
- Open Dollar: Approved address can approve other addresses for an owner's safeLogic error$0
- Open Dollar: `transferSAFEOwnership()` does not fully transfer ownershipLogic error$0
- Open Dollar: Incorrect calculations for Surplus Auction creation cause massive surplus imbalancesInteger overflow/underflow$0
- Open Dollar: Missing debt check lets users start a debt auction of non-existent debtLogic error$0
- Open Dollar: `ODSafeManager#allowSAFE()` cannot be executed either by the proxy contract or any other address.Logic error$0
- Open Dollar: ODSafeManager.enterSystem - Transfer wrong amount of collateral, debtLogic error$0
- Open Dollar: Decimal Limitation in CamelotRelayer and UniV3Relayer Contract DeploymentOracle manipulation$0
- Open Dollar: Vault721.tokenURI does not comply with ERC721 - Metadata specificationLogic error$0
- Wildcat Protocol: `codehash` check in factory contracts does not account for non-empty addressesFront-running / MEV$0
- Wildcat Protocol: Calculation for lender withdrawals in `_applyWithdrawalBatchPayment()` should not round upInteger overflow/underflow$0
- Kelp DAO: Protocol mints less rsETH on deposit than intendedReentrancy$0
- Kelp DAO: The price of rsETH could be manipulated by the first stakerOracle manipulation$0
- Wildcat Protocol: Removing markets from `WildcatArchController` gives lenders immunity from sanctionsLogic error$0
- Wildcat Protocol: `create2WithStoredInitCode()` does not revert if contract deployment failedLogic error$0
- Wildcat Protocol: Function `WildcatMarketController.setAnnualInterestBips` allows for values outside the factory rangeLogic error$0
- Wildcat Protocol: Borrower can drain all funds of a sanctioned lenderLogic error$0
- Wildcat Protocol: Protocol markets are incompatible with rebasing tokensLogic error$0
- Kelp DAO: Update in strategy will cause wrong issuance of sharesOracle manipulation$0
- Wildcat Protocol: When `withdrawalBatchDuration` is set to zero lenders can withdraw more then allocated to a batchReentrancy$0
- Wildcat Protocol: When a batch of withdrawals expires, that batch is often underpaid their owed interestLogic error$0
- Wildcat Protocol: Pending withdrawal batch debt cannot be paid by the borrower until the cycle endsLogic error$0
- Wildcat Protocol: Return values of `transfer()`/`transferFrom()` not checked and unsafe usageLogic error$0
- Wildcat Protocol: Blocked accounts keep earning interest contrary to the WhitePaperOracle manipulation$0
- Wildcat Protocol: `collectFees()` updates delinquency wrongly as `_writeState()` is called before assets are transferredLogic error$0
- Wildcat Protocol: `setAnnualInterestBips()` can be abused to keep a market's reserve ratio at 90%Logic error$0
- Wildcat Protocol: Borrower has no way to update `maxTotalSupply` of `market` or close market.Access control$0
- Maia DAO: No deposit cross-chain calls/communication can still originate from a removed branch bridge agentBridge exploit$0
- Maia DAO: Redeeming a Settlement won't work for unsigned messages when the communicating dApps have different addresses on the different chainsBridge exploit$0
- Maia DAO: All tokens can be stolen from `VirtualAccount` due to missing access modifierAccess control$0
- Maia DAO: `addGlobalToken()` `localAdress` could be overwrittenBridge exploit$0
- Maia DAO: if the Virtual Account's owner is a Contract Account (multisig wallet), attackers can gain control of the Virtual Accounts by gaining control of the same owner's address in a different chainAccess control$0
- Maia DAO: Incorrect flag results to `_hasFallbackToggled` always set to false on `createMultipleSettlement`.Bridge exploit$0
- Maia DAO: `ArbitrumBranchBridgeAgent::_performFallbackCall` function does not refund users their excess native gas depositBridge exploit$0
- Maia DAO: The governance will fail to add an ecosystem token if someone creates a hToken that uses that ecosystem tokenGovernance attack$0
- Maia DAO: When using BaseBranchRouter as a router on the 'Arbitrum' branch, we are unable to invoke the 'callOutAndBridge' function.Bridge exploit$0
- Maia DAO: If `RootBridgeAgent.lzReceiveNonBlocking` reverts internally, the native token sent by relayer to RootBridgeAgent is left in RootBridgeAgentBridge exploit$0
- Maia DAO: Incorrect source address decoding in RootBridgeAgent and BranchBridgeAgent's `_requiresEndpoint` breaks LayerZero communicationReentrancy$0
- Maia DAO: Message channels can be blocked resulting in DoSBridge exploit$0
- Maia DAO: `BaseBranchRouter._transferAndApproveToken` may revert in some casesBridge exploit$0
- Maia DAO: Depositors could lose all their deposited tokens (including the hTokens) if their address is blacklisted in one of all the deposited underlyingTokensBridge exploit$0
- Tapioca DAO: TOFT in (m)TapiocaOft contracts can be stolen by calling removeCollateral() with a malicious removeParams.marketBridge exploit$0
- Tapioca DAO: Attacker can block LayerZero channel due to variable gas cost of saving payloadGovernance attack$0
- Tapioca DAO: `AaveStrategy.sol`: Changing swapper breaks the contractAccess control$0
- Tapioca DAO: User can give himself approval for all assets held by `MagnetarV2` contractGovernance attack$0
- Tapioca DAO: CompoundStrategy attempts to transfer out a greater amount of ETH than will actually be withdrawn, leading to DoSReentrancy$0
- Tapioca DAO: triggerSendFrom() will send all the ETH in the destination chain where sendFrom() is called to the refundAddress in the LzCallParams argumentGovernance attack$0
- Tapioca DAO: Attacker can specify any `receiver` in `USD0.flashLoan()` to drain `receiver` balanceFlash loan attack$0
- Tapioca DAO: Anybody can buy collateral on behalf of other users without having any allowance using the multiHopBuyCollateral()Oracle manipulation$0
- Tapioca DAO: Ability to steal user funds and increase collateral share infinitely in BigBang and SingularityGovernance attack$0
- Tapioca DAO: Lack of safety buffer between liquidation threshold and LTV ratio for borrowers to prevent unfair liquidationsGovernance attack$0
- Tapioca DAO: Liquidation transactions can potentially fail for all marketsOracle manipulation$0
- Tapioca DAO: Not enough TAP tokens to exercise if a user participates and exercises in the same epochGovernance attack$0
- Tapioca DAO: Attacker can block LayerZero channel due to missing check of minimum gas passedBridge exploit$0
- Tapioca DAO: twTAP.claimAndSendRewards() will claim the wrong amount for each reward token due to the use of wrong indexGovernance attack$0
- Tapioca DAO: Reentrancy in `USDO.flashLoan()`, enabling an attacker to borrow unlimited USDO exceeding the max borrow limitReentrancy$0
- Tapioca DAO: `twTAP.participate()` can be permanently frozen due to lack of access control on host-chain-only operationsAccess control$0
- Tapioca DAO: `BalancerStrategy.sol`: `_withdraw` withdraws insufficient tokensGovernance attack$0
- Tapioca DAO: TOFT leverageDown always fails if TOFT is a wrapper for native tokensGovernance attack$0
- Tapioca DAO: Potential 99.5% loss in `emergencyWithdraw()` of two Yieldbox strategiesFront-running / MEV$0
- Tapioca DAO: The amount of debt removed during `liquidation` may be worth more than the account's collateralOracle manipulation$0
- Tapioca DAO: TOFT `exerciseOption` can be used to steal all underlying erc20 tokensGovernance attack$0
- Tapioca DAO: The BigBang contract take more fees than it shouldGovernance attack$0
- Tapioca DAO: TOFT and USDO Modules Can Be SelfdestructedGovernance attack$0
- Tapioca DAO: Collateral can be locked in BigBang contract when `debtStartPoint` is nonzeroGovernance attack$0
- Tapioca DAO: `BaseTOFTLeverageModule.sol`: `leverageDownInternal` tries to burn tokens from wrong addressGovernance attack$0
- Tapioca DAO: `BaseTOFT.sol`: `removeCollateral` can be used to manipulate other user's positions and steal tokens due to absent approval checkFront-running / MEV$0
- Tapioca DAO: `exitPosition` in `TapiocaOptionBroker` may incorrectly inflate position weightsGovernance attack$0
- Tapioca DAO: Refund mechanism for failed cross-chain transactions does not workBridge exploit$0
- Tapioca DAO: Usage of `BalancerStrategy.updateCache` will cause single sided Loss, discount to Depositor and to OverBorrow from SingularityReentrancy$0
- Tapioca DAO: `LidoEthStrategy._currentBalance` is subject to price manipulation, allows overborrowing and liquidationsReentrancy$0
- Tapioca DAO: User's assets can be stolen when removing them from the Singularity market through the Magnetar contractOracle manipulation$0
- Tapioca DAO: TOFT `removeCollateral` can be used to steal all the balanceBridge exploit$0
- Tapioca DAO: Attacker can prevent rewards from being issued to gauges for a given epoch in TapiocaOptionBrokerOracle manipulation$0
- Tapioca DAO: A user with a TapiocaOFT allowance >0 could steal all the underlying ERC20 tokens of the ownerGovernance attack$0
- Tapioca DAO: `_sendToken` implementation in `Balancer.sol` is wrong which will make the underlying erc20 be send to a random address and lostBridge exploit$0
- Tapioca DAO: `twTAP.sol`: Reward tokens stored in index 0 can be stolenGovernance attack$0
- Tapioca DAO: Overflow risk in Market contractInteger overflow/underflow$0
- Tapioca DAO: All assets of (m)TapiocaOFT can be stealed by depositing to strategy cross chain call with 1 amount but maximum shares possibleBridge exploit$0
- Tapioca DAO: `multiHopSellCollateral()` will fail due to call on an invalid market address causing bridged collateral to be locked upBridge exploit$0
- Tapioca DAO: `SGLLiquidation::_computeAssetAmountToSolvency`, `Market::_isSolvent` and `Market::_computeMaxBorrowableAmount` may overestimate the collateral, resulting in false solvencyGovernance attack$0
- Tapioca DAO: Rewards compounded in AaveStrategy are unredeemableGovernance attack$0
- Tapioca DAO: TOFT `triggerSendFrom` can be used to steal all the balanceBridge exploit$0
- Tapioca DAO: Attacker can steal victim's oTAP position contents via `MagnetarMarketModule#_exitPositionAndRemoveCollateral()`Governance attack$0
- Tapioca DAO: Incorrect liquidation reward computation causes excess liquidator rewards to be givenOracle manipulation$0
- Tapioca DAO: `BaseTOFT.sol`: `retrieveFromStrategy` can be used to manipulate other user's positions due to absent approval checkFront-running / MEV$0
- Tapioca DAO: Exercise option cross chain message in the (m)TapiocaOFT will always revert in the destination, losing debited funds in the source chainGovernance attack$0
- Tapioca DAO: Attacker can pass duplicated reward token addresses to steal the reward of contract `twTAP.sol`Bridge exploit$0
- Tapioca DAO: Magnetar contract has no approval checkingOracle manipulation$0
- Tapioca DAO: `_liquidateUser()` should not re-use the same minimum swap amount out for multiple liquidationGovernance attack$0
- Tapioca DAO: Funds are locked because borrowFee is not correctly implemented in BigBangGovernance attack$0
- Tapioca DAO: Accounted balance of GlpStrategy does not match withdrawable balance, allowing for attackers to steal unclaimed rewardsGovernance attack$0
- Tapioca DAO: Incorrect solvency check because it multiplies collateralizationRate by share not amount when calculating liquidation thresholdInteger overflow/underflow$0
- Tapioca DAO: Incorrect formula used in function `Market.computeClosingFactor()`Integer overflow/underflow$0
- Tapioca DAO: Tokens can be stolen from other users who have approved MagnetarAccess control$0
- Centrifuge: Investors claiming their `maxDeposit` by using the `LiquidityPool.deposit()` will cause other users to be unable to claim their `maxDeposit`/`maxMint`Integer overflow/underflow$0
- Centrifuge: `LiquidityPool::requestRedeemWithPermit` transaction can be front run with the different liquidity poolLogic error$0
- Centrifuge: DelayedAdmin Cannot `PauseAdmin.removePauser`Governance attack$0
- Centrifuge: ```trancheTokenAmount``` should be rounded UP when proceeding to a withdrawal or previewing a withdrawalLogic error$0
- Centrifuge: Cached `DOMAIN_SEPARATOR` is incorrect for tranche tokens potentially breaking permit integrationsLogic error$0
- Centrifuge: You can deposit really small amount for other users to DoS themAccess control$0
- Centrifuge: The Restriction Manager does not completely implement ERC1404 which leads to accounts that are supposed to be restricted actually having access to do with their tokens as they see fitAccess control$0
- Centrifuge: `onlyCentrifugeChainOrigin()` can't require `msg.sender` equal `axelarGateway`Bridge exploit$0
- Maia DAO Ecosystem: Some functions in the Talos contracts do not allow user to supply `slippage` and `deadline`, which may cause swap revertFront-running / MEV$0
- Maia DAO Ecosystem: Inconsistencies in reading the encoded parameters received in the `_sParams` argument in `BranchBridgeAgent::clearTokens()`Bridge exploit$0
- Maia DAO Ecosystem: Ulysses omnichain - `addbridgeagentfactory` in `rootPort` is not functionalAccess control$0
- Maia DAO Ecosystem: Maia Governance token balance dilution in `vMaia` vault is breaking the conversion rate mechanismInteger overflow/underflow$0
- Maia DAO Ecosystem: `updatePeriod()` has less minting of `HERMES`Governance attack$0
- Maia DAO Ecosystem: Removing more gauge weight than it should be while transferring `ERC20Gauges` tokenReentrancy$0
- Maia DAO Ecosystem: `ERC4626PartnerManager.checkTransfer` does not check `amount` correctly, as it applies `bHermesRate` to `balanceOf[from]`, but not `amount`.Governance attack$0
- Maia DAO Ecosystem: Although `ERC20Boost.decrementGaugesBoostIndexed` function would require the user to remove all of their boosts from a deprecated gauge at once, such a user can instead call `ERC20Boost.decrementGaugeBoost` function multiple times to utiliz…Governance attack$0
- Maia DAO Ecosystem: `migratePartnerVault()` in the first vault does not work properlyAccess control$0
- Maia DAO Ecosystem: `Rerange`/`rebalance` should not use `protocolFee` as an asset for adding liquidityReentrancy$0
- Maia DAO Ecosystem: `BranchBridgeAgent._normalizeDecimalsMultiple` will always revert because of the lack of allocating memoryBridge exploit$0
- Maia DAO Ecosystem: `vMaia` is ERC-4626 compliant, but the `maxWithdraw` & `maxRedeem` functions are not fully up to EIP-4626's specificationGovernance attack$0
- Maia DAO Ecosystem: Incorrect flow of adding liquidity in `UlyssesRouter.sol`Reentrancy$0
- Maia DAO Ecosystem: Incorrect accounting logic for `fallback` gas will lead to insolvencyBridge exploit$0
- Maia DAO Ecosystem: Slippage controls for calling `bHermes` contract's `ERC4626DepositOnly.deposit` and `ERC4626DepositOnly.mint` functions are missingInteger overflow/underflow$0
- Maia DAO Ecosystem: Overpaying remaining gas to the user for failing `anyExecute` call due to an incorrect gas unit calculation in `BranchBridgeAgent`Access control$0
- Maia DAO Ecosystem: Use of `slot0` to get `sqrtPriceLimitX96` can lead to price manipulation.Oracle manipulation$0
- Maia DAO Ecosystem: Replenishing gas is missing in `_payFallbackGas` of `RootBridgeAgent`Bridge exploit$0
- Maia DAO Ecosystem: `setWeight()` Logic errorReentrancy$0
- Maia DAO Ecosystem: An attacker can steal Accumulated Awards from `RootBridgeAgent` by abusing `retrySettlement()`Bridge exploit$0
- Maia DAO Ecosystem: Unstaking `vMAIA` tokens on the first Tuesday of the month can be offsetGovernance attack$0
- Maia DAO Ecosystem: Accessing the incorrect offset to get the nonce when a flag is 0x06 in `RootBridgeAgent::anyExecute()` will lead to marked as executed incorrect nonces and could potentially cause a DoSBridge exploit$0
- Maia DAO Ecosystem: The `RestakeToken` function is not permissionlessAccess control$0
- Maia DAO Ecosystem: Lack of a return value handing in `ArbitrumBranchBridgeAgent._performCall()` could cause users' deposit to be locked in contractBridge exploit$0
- Maia DAO Ecosystem: `UlyssesToken` asset ID accounting errorInteger overflow/underflow$0
- Maia DAO Ecosystem: `UlyssesToken.setWeights(...)` can cause user loss of assets on vault deposits/withdrawalsGovernance attack$0
- Maia DAO Ecosystem: `BribesFactory::createBribeFlywheel` can be completely blocked from creating any `Flywheel` by a malicious actorAccess control$0
- Maia DAO Ecosystem: `_decrementWeightUntilFree()` has a possible infinite loopReentrancy$0
- Maia DAO Ecosystem: `ERC4626PartnerManager.sol` mints extra `partnerGovernance` tokens to itself, resulting in over supply of governance tokenAccess control$0
- Maia DAO Ecosystem: Re-adding a deprecated gauge in a new epoch before calling `updatePeriod()`/`queueRewardsForCycle()` will leave some gauges without rewardsGovernance attack$0
- Maia DAO Ecosystem: Many `create` methods are suspicious of the reorg attackGovernance attack$0
- Maia DAO Ecosystem: A user can bypass bandwidth limit by repeatedly "balancing" the poolGovernance attack$0
- Maia DAO Ecosystem: An attacker can redeposit gas after `forceRevert()` to freeze all deposited gas budget of `Root Bridge Agent`Reentrancy$0
- Maia DAO Ecosystem: Deploy flow of `Talos` is brokenGovernance attack$0
- Maia DAO Ecosystem: Second per liquidity inside could overflow `uint256` causing the LP position to be locked in `UniswapV3Staker`Integer overflow/underflow$0
- Maia DAO Ecosystem: If a STRATEGY TOKEN is "Toggled off" STRATEGIES will still be able to withdraw, but returning of tokens with `replenishReserves` will be disabled.Access control$0
- Maia DAO Ecosystem: A malicious user can set any contract as a local `hToken` for an underlying token since there is no access control for `_addLocalToken`Reentrancy$0
- Maia DAO Ecosystem: Governance relies on the current `totalSupply` of `bHermes` when calculating `proposalThresholdAmount` and `quorumVotesAmount`Governance attack$0
- Maia DAO Ecosystem: `BoostAggregator` owner can set fees to 100% and steal all of the user's rewardsAccess control$0
- Maia DAO Ecosystem: DoS of `RootBridgeAgent` due to missing negation of return values for `UniswapV3Pool.swap()`Integer overflow/underflow$0
- Maia DAO Ecosystem: `BaseV2Minter` DAO reward shares are calculated wrongGovernance attack$0
- Maia DAO Ecosystem: `RootBridgeAgent.redeemSettlement` can be front-run using `RootBridgeAgent.retrySettlement`, causing redeem to DoSAccess control$0
- Maia DAO Ecosystem: A malicious user can front-run Gauges's call `addBribeFlywheel` to steal bribe rewardsFlash loan attack$0
- Maia DAO Ecosystem: `redeem()` in `beforeRedeem` is using the wrong owner parameterReentrancy$0
- Maia DAO Ecosystem: Depositing gas through `depositGasAnycallConfig` should not withdraw the `nativeToken`Bridge exploit$0
- Maia DAO Ecosystem: Branch Strategies lose yield due to wrong implementation of time limit in `BranchPort.sol`Oracle manipulation$0
- Maia DAO Ecosystem: The difference between `gasLeft` and `gasAfterTransfer` is greater than `TRANSFER_OVERHEAD`, causing `anyExecute` to always failAccess control$0
- Maia DAO Ecosystem: User may underpay for the remote call `ExecutionGas` on the root chainBridge exploit$0
- Maia DAO Ecosystem: `VirtualAccount` cannot directly send native tokensGovernance attack$0
- Maia DAO Ecosystem: `vMaia` Lacks of override in `forfeitBoost`Integer overflow/underflow$0
- Maia DAO Ecosystem: Missing the unwrapping of native token in `RootBridgeAgent.sweep()` causes fees to be stuckBridge exploit$0
- Maia DAO Ecosystem: A user can call `callOutSigned` without paying for gas by reentering `anyExecute` with Virtual AccountReentrancy$0
- Maia DAO Ecosystem: Multiple issues with `retrySettlement()` and `retrieveDeposit()` will cause loss of users' bridging depositsBridge exploit$0
- Maia DAO Ecosystem: When the `anyExecute` call is made to `RootBridgeAgent` with a `depositNonce` that has been recorded in `executionHistory`, `initialGas` and `userFeeInfo` will not be updated, which would affect the next caller of `retrySettlement`.Bridge exploit$0
- Maia DAO Ecosystem: Claiming outstanding utility tokens from `vMaia` vault DoS on `pbHermes<>bHermes` conversion rate `>` 1Governance attack$0
- Maia DAO Ecosystem: `TalosBaseStrategy#init()` lacks slippage protectionReentrancy$0
- Maia DAO Ecosystem: Removing a `UniswapV3Gauge` via `UniswapV3GaugeFactory` does not actually remove it from the `UniswapV3Staker`. The gauge still gains rewards and can be staked too (even though deprecated). Plus old stakers can game the rewards of new stake…Governance attack$0
- Maia DAO Ecosystem: `RootBridgeAgent->CheckParamsLib#checkParams` does not check that `_dParams.token` is underlying of `_dParams.hToken`Bridge exploit$0
- Maia DAO Ecosystem: An attacker can exploit the "deposit" to drain the `Ulysess Liquidity Pool`Integer overflow/underflow$0
- Maia DAO Ecosystem: In `ERC20Boost.sol`, a user can be `attached` to a gauge and have no boost balance.Governance attack$0
- Maia DAO Ecosystem: `withdrawProtocolFees()` Possible malicious or accidental withdrawal of all rewardsAccess control$0
- Maia DAO Ecosystem: Reentrancy attack possible on `RootBridgeAgent.retrySettlement()` with missing access control for `RootBridgeAgentFactory.createBridgeAgent()`Reentrancy$0
- Maia DAO Ecosystem: `MIN_FALLBACK_RESERVE` (in `BranchBridgeAgent`) doesn't consider the actual gas consumption in ``AnyCall`` contracts, which lets the user underpay the actual cost when replenishing the execution budgetAccess control$0
- Maia DAO Ecosystem: On Ulysses omnichain - `RetrieveDeposit` might never be able to trigger the `Fallback` functionBridge exploit$0
- Maia DAO Ecosystem: Due to inadequate checks, an adversary can call `BranchBridgeAgent#retrieveDeposit` with an invalid `_depositNonce`, which would lead to a loss of other users' deposits.Bridge exploit$0
- Maia DAO Ecosystem: A lack of slippage protection can lead to a significant loss of user fundsFront-running / MEV$0
- Maia DAO Ecosystem: Wrong consideration of `blockformation` period causes incorrect `votingPeriod` and `votingDelay` calculationsGovernance attack$0
- Maia DAO Ecosystem: Multiple issues with decimal scaling will cause incorrect accounting of hTokens and underlying tokensBridge exploit$0
- Maia DAO Ecosystem: The user is enforced to overpay for the `fallback` gas when calling `retryDeposit`Bridge exploit$0
- Maia DAO Ecosystem: Incorrectly reading the offset from the received data parameter to get the `depositNonce` in the `BranchBridgeAgent::anyFallback()` functionBridge exploit$0
- Maia DAO Ecosystem: Removing a `BribeFlywheel` from a Gauge does not remove the reward asset from the rewards depo, making it impossible to add a new Flywheel with the same reward tokenAccess control$0
- Maia DAO Ecosystem: `UlyssesPool.sol` does not match `EIP4626` because of the preview functionsGovernance attack$0
- Maia DAO Ecosystem: Cross-chain messaging via `Anycall` will failBridge exploit$0
- Lybra Finance: Rewards for initial period can be lost in all of the synthetix derivative contractsAccess control$0
- Lybra Finance: Understatement of `poolTotalPeUSDCirculation` amounts due to incorrect accounting after function `_repay` is calledLogic error$0
- Lybra Finance: Governance wrongly calculates `_quorumReached()`Governance attack$0
- Lybra Finance: Lack of timelock on `rigidRedemption`, enables to steal yield from other usersOracle manipulation$0
- Lybra Finance: Liquidation won't work when bad and safe collateral ratio are set to default valuesInteger overflow/underflow$0
- Lybra Finance: The `EUSDMiningIncentives` contract is incorrectly implemented and can allow for more than the intended amount of rewards to be mintedLogic error$0
- Lybra Finance: There is no mechanism that prevents from minting less than `esLBR` maximum supply in `StakingRewardsV2`Logic error$0
- Lybra Finance: Incorrect function call in `LybraRETHVault`'s `getAssetPrice`Logic error$0
- Lybra Finance: Making `_totalSupply` and `_totalShares` imbalance significantly by providing fake income leads to stealing fundLogic error$0
- Lybra Finance: Allowing `refreshReward()` to fail during minting or buring esLBR could result in gain or loss previously earned rewardGovernance attack$0
- Lybra Finance: Incorrectly implemented modifiers in `LybraConfigurator.sol` allow any address to call functions that are supposed to be restrictedAccess control$0
- Lybra Finance: `EUSD.mint` function wrong assumption of cases when calculated sharesAmount = 0Governance attack$0
- Lybra Finance: Wrong `proposalThreshold` amount in `LybraGovernance.sol`Governance attack$0
- Lybra Finance: `LybraPeUSDVaultBase.rigidRedemption` should use `getBorrowedOf` instead of `borrowed`Logic error$0
- Lybra Finance: There is a vulnerability in the `executeFlashloan` function of the `PeUSDMainnet` contract. Hackers can use this vulnerability to burn other people's eUSD token balance without permissionFlash loan attack$0
- Lybra Finance: Volatile prices and lack of checks on `rigidRedemption()` can cause users to purchase stETH at unwanted pricesFront-running / MEV$0
- Lybra Finance: `stakerewardV2pool.withdraw()` should check the user's boost lock status.Logic error$0
- Lybra Finance: Incorrect Reward Distribution Calculation in `ProtocolRewardsPool`Logic error$0
- Lybra Finance: Fixed reward percentage for liquidators in the eUSD vault may cause a liquidation crisisLogic error$0
- Lybra Finance: No check for Individual mint amount surpassing 10% when the circulation reaches 10\_000\_000 in `mint()` of `LybraEUSDVaultBase` contractLogic error$0
- Lybra Finance: If `ProtocolRewardsPool` is insufficient in EUSD, users will not be able to claim any rewardsLogic error$0
- Asymmetry Finance: In de-peg scenario, forcing full exit from every derivative & immediately re-entering can cause big losses for depositorsGovernance attack$0
- Asymmetry Finance: `WstEth` derivative assumes a `~1=1` peg of stETH to ETHOracle manipulation$0
- Asymmetry Finance: Potential `stake()` DoS if sole safETH holder (ie: first depositor) unstakes `totalSupply` - 1Logic error$0
- Asymmetry Finance: `Reth.sol`: Withdrawals are unreliable and depend on excess `RocketDepositPool` balance which can brick the whole protocolAccess control$0
- Asymmetry Finance: Possible DoS on `unstake()`Oracle manipulation$0
- Asymmetry Finance: Non-ideal rETH/WETH pool used pays unnecessary feesGovernance attack$0
- Asymmetry Finance: sFrxEth may revert on redeeming non-zero amountLogic error$0
- Asymmetry Finance: Users can fail to unstake and lose their deserved ETH because malfunctioning or untrusted derivative cannot be removedAccess control$0
- Asymmetry Finance: Price of sfrxEth derivative is calculated incorrectlyOracle manipulation$0
- Asymmetry Finance: Stuck ether when use function `stake` with empty `derivatives`(`derivativeCount` = 0)Logic error$0
- Asymmetry Finance: Missing derivative limit and deposit availability checks will revert the whole `stake()` functionAccess control$0
- Asymmetry Finance: Reth `poolPrice` calculation may overflowOracle manipulation$0
- Asymmetry Finance: Staking, unstaking and rebalanceToWeight can be sandwiched (Mainly rETH deposit)Oracle manipulation$0
- Asymmetry Finance: Residual ETH unreachable and unutilized in SafEth.solAccess control$0
- Asymmetry Finance: Division before multiplication truncate `minOut` and incurs heavy precision loss and result in insufficient slippage protectionAccess control$0
- Asymmetry Finance: Lack of deadline for uniswap AMMFront-running / MEV$0
- Asymmetry Finance: An attacker can manipulate the preDepositvePrice to steal from other usersInteger overflow/underflow$0
- Asymmetry Finance: No slippage protection on `stake()` in SafEth.solLogic error$0
- Asymmetry Finance: DoS due to external call failureReentrancy$0
- Ethos Reserve: User can lose up to whole stake on vault withdrawal when there are funds locked in the strategyReentrancy$0
- Ethos Reserve: `_harvestCore()` roi calculation errorLogic error$0
- Ethos Reserve: Rewards will be locked in LQTYStaking ContractAccess control$0
- Ethos Reserve: In `ReaperVaultV2`, we should update `lockedProfit` and `lastReport` before changing `lockedProfitDegradation`Front-running / MEV$0
- Biconomy: `SmartAccount.sol` is intended to be upgradable but inherits from contracts that contain storage and no gapsLogic error$0
- Biconomy: Non-compliance with EIP-4337Logic error$0
- Biconomy: `FeeRefund.tokenGasPriceFactor` is not included in signed transaction data allowing the submitter to steal fundsReentrancy$0
- Biconomy: Attacker can gain control of counterfactual walletFront-running / MEV$0
- Biconomy: Cross-Chain Signature Replay AttackSignature replay$0
- Biconomy: Replay attack (EIP712 signed transaction)Signature replay$0
- Biconomy: DoS of user operations and loss of user transaction fee due to insufficient gas value submission by malicious bundlerLogic error$0
- Biconomy: Arbitrary transactions possible due to insufficient signature validationLogic error$0
- Biconomy: Transaction can fail due to batchId collisionLogic error$0
- Biconomy: Paymaster ETH can be drained with malicious senderLogic error$0
- Biconomy: Methods used by EntryPoint has `onlyOwner` modifierAccess control$0
- Biconomy: Theft of funds under relaying the transactionFront-running / MEV$0
- Biconomy: Destruction of the `SmartAccount` implementationSignature replay$0
- Biconomy: Doesn't Follow ERC1271 StandardLogic error$0
- Biconomy: Griefing attacks on `handleOps` and `multiSend` logicFront-running / MEV$0