Business logic vulnerabilities in disclosed bug bounty reports
The code does exactly what it was written to do, and what it was written to do is wrong.
- Reports indexed
- 1702
- Total paid
- $131k
- Critical
- 1
- Largest payout
- $120k
Logic errors are the residual category and the hardest to find with tooling, because there is no unsafe pattern to grep for. The contract compiles, the tests pass, and the specification itself has a hole in it: an off-by-one in a reward epoch, a state machine that permits a transition nobody considered, an accounting path that credits twice under a specific ordering.
The reports gathered here are the strongest argument for reading disclosures rather than checklists. Each one is a case where a reviewer reconstructed the intended invariant, then found the input that violated it — and the write-ups usually show that reasoning explicitly.
Common shapes include edge cases at zero and at maximum, first and last participant conditions, and paths that behave differently when a step is skipped or repeated.
What reviewers look for
- State machines with unreachable-looking transitions that are in fact reachable
- Zero-value, single-participant and final-participant edge cases
- Accounting that differs depending on the order of two independent calls
- Emergency or pause paths that bypass invariant checks
- Loops whose bounds depend on user-controlled length
Curated highlights
The largest disclosed payouts in this group, with our own summary of each. Every report links back to the original disclosure.
Rounding direction lets attacker mint shares for free on first deposit
A classic ERC-4626 share inflation vulnerability enabled an attacker to steal deposits from initial vault users. By depositing a single wei of assets to receive one share and then transferring a large amount of assets directly to the vault contract, the exchange rate ratio was severely skewed. Subsequent deposits from victims rounded down to zero minted shares while forfeiting their underlying tokens, allowing the attacker to redeem their single share for the entire vault balance.
Oracle-free AMM invariant rounding allows slow drain
A directional rounding flaw in the Newton-Raphson solver for a StableSwap invariant enabled subtle value extraction during token exchanges. When computing invariant values and target balances, both routines rounded down, yielding an extra wei of token output to the user on specific balance ratios. On low-fee Layer 2 blockchains, an automated script could execute high-frequency minimal swaps to steadily extract pool reserves over time.
Docker Secret Disclosure via GitHub Actions Cache Poisoning
A GitHub Actions cache poisoning vulnerability was identified in the Hyperledger repository infrastructure. The flaw allowed unauthorized actors to modify shared build cache keys and execute arbitrary code within CI/CD pipeline steps. When downstream workflows restored the manipulated cache, sensitive Docker credentials stored in environment variables were exposed. This allowed attackers to extract critical pipeline secrets without requiring write permissions to the underlying repository.
Window.opener bug at www.coinbase.com
A web application link on www.coinbase.com opened external URLs using target="_blank" without setting the rel="noopener" or rel="noreferrer" security attributes. This allowed the newly opened destination window to access and manipulate the parent tab through the JavaScript window.opener reference. An attacker controlling the external target site could leverage this access to redirect the user's active Coinbase tab to a malicious external URL or phishing page. Coinbase rewarded the finding with a $100 bounty.
Rigor Protocol: `updateProjectHash` does not check project address
Rigor Protocol's Project.sol has an asymmetry in its signature-verification paths: every external function except `updateProjectHash` binds the signed `_data` payload to the project contract via `require(_data.projectAddress == address(this))`, but L162 omits this binding. Because the signed message does not commit to the specific project, a `_data`/`_signature`/`_nonce` tuple produced by a shared builder or contractor for one project can be replayed on a different project once its nonce counter reaches the same value. In practice this lets an observer reuse an older task-hash update signature to change a task hash in a newly opened project that shares the same signer group, bypassing authorization. The Rigor developer confirmed the finding during the Code4rena contest.
Rigor Protocol: `Project.addTasks()` wouldn't work properly when it's called from disputes contract.
A stale task-count consistency check in Rigor's Project.addTasks() causes task additions to revert when a dispute is pending. Because disputes take days to resolve while builders/contractors may legitimately add tasks in the interim, the project becomes unable to add new tasks (beyond the count snapshot at raiseDispute time) until the dispute is settled. The report proposes skipping the taskCount equality check when addTasks is invoked from the disputes contract, and the developer confirmed the issue.
All reports in this group
- 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: Wrong APR can be used when project is unpublished and published againLogic error$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
- 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
- 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
- Good Entry: Incorrect parameters passed to UniV3 may cause funds stuck in the vaultLogic error$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
- 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
- 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
- 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
- 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
- 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
- Putty: Order duration can be set to 0 by Malicious makerLogic error$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
- PoolTogether: Resetting delegation will result in user funds being lost foreverLogic error$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: 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
- Putty: Fee is being deducted when Put is expired and not when it is exercised.Logic error$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
- 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
- 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: A permissionless swapper will extract principal from exact-share liquidity providersLogic error$0
- Metric: ChainlinkOracle cannot pay Data Streams verification fees, causing oracle updates to failLogic error$0
- Current Finance: Double subtraction of cash_reserve in deposit_limit_breached allows bypassing the maximum deposit limitLogic error$0
- Current Finance: Cross-segment limiter netting failure lets attackers grief daily borrow and withdraw capsLogic error$0
- Current Finance: Expired reward pool close can refund economically accrued borrower yield before lazy reward materializationLogic error$0
- Current Finance: ADL borrow deleverage triggers on global debt instead of per-group debt, force-liquidating healthy positionsLogic error$0
- Current Finance: Whitelisted liquidation bots will seize collateral from borrowers that are still solvent at spot price during EMA lagLogic error$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: Admin fees are applied to NMX tokens during migrationLogic error$0
- stNXM by EaseDeFi: Missing Tranche Tracking After `extendDeposit()` Causes Temporary Asset UnderreportingLogic error$0
- stNXM by EaseDeFi: Expired tranche cannot be extended due to lack of token allowanceLogic error$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: `MessageProcessor` fails to disable `unpaidMode` during `UntrustedContractUpdate` execution enabling permanent DOS via malicious unpayable batch creationLogic error$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: Ineffective minimum order size check for ASK limit orders can lead to Denial of ServiceLogic error$0
- Dango DEX: Attacker can exploit thin liquidity in xyk pool to save on fees.Logic error$0
- Dango DEX: A newly deployed pool can be DoSLogic error$0
- Brevis Pico ZKVM: `operand_to_check` is not constrained to be a valid word in `eval_ecall`Logic error$0
- Dango DEX: Any change in bucket size will DOS order cancellation leading to frozen user funds and halts the entire auctionLogic error$0
- Dango DEX: XYK reflect_curve omits swap fee in order sizing, leaking LP feesLogic error$0
- Brevis Pico ZKVM: read_write chip does not enforce constraints on opcode selectorsLogic error$0
- Dango DEX: The first Liquidity Provider can perform a fee less swap by providing unbalanced liquidity.Logic error$0
- Brevis Pico ZKVM: First chunk having cpu chip is incorrectly checked in convert circuitLogic error$0
- Dango DEX: `OwnerMsg::ForceCancelOrders` is unusable due to the DEX contract lacking a `receive` function to accept refunds from cancelled passive liquidity ordersLogic error$0
- Brevis Pico ZKVM: wrong sign handling when x == 0 produces non-canonical / out-of-range x = pLogic error$0
- Dango DEX: Overflow in geometric can dos swapLogic error$0
- Brevis Pico ZKVM: ro[config.log_blowup] is not checked to be zero in recursive verifierLogic error$0
- Brevis Pico ZKVM: Quotient domain is completely controlled by proverLogic error$0
- Ammplify: Attackers can drain the protocol tokensLogic error$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: 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: 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: 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: 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: 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: Finalize-window vote-changing vulnerability: auto-voters can alter choices post-epoch to manipulate resultsLogic 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: InflationaryVest.vy: Missing update of self.claimed allows infinite multiple claims by the recipientLogic error$0
- Malda: Migrator severily underestimates slippage by using underlying instead of sharesLogic error$0
- Malda: ```WrapAndSupply::wrapAndSupplyOnExtensionMarket``` preventes users from supplying on hostLogic error$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: 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: 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
- 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: 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 `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: 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: 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
- 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: `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: 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
- 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
- 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: Solana zetaclient inbound observer is blocked indefinitely when an additional account is passed to the `call` instructionLogic error$0
- ZetaChain Cross-Chain: A Malicious Observer can use TON's Outbound Tracker to steal funds from ZetachainLogic 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: Removing an observer doesn't update an active ballot's voter list, leading to deadlocksLogic error$0
- ZetaChain Cross-Chain: Insufficient Transaction Broadcast Timeout in EVM ChainsLogic error$0
- ZetaChain Cross-Chain: Jailed validators are able to participate in votingLogic error$0
- ZetaChain Cross-Chain: removed observers are still able to voteLogic error$0
- ZetaChain Cross-Chain: V1 ZEVM logs incorrectly use the `emittingContract` address as the CCTX `sender` addressLogic error$0
- ZetaChain Cross-Chain: Bitcoin Observers' signed transactions will be rejected due to invalid sighashesLogic error$0
- ZetaChain Cross-Chain: Observer rewards are less than expected due to not properly accounting for negative rewardsLogic error$0
- ZetaChain Cross-Chain: ZETA token supply keeps growing on failed `onReceive()` contract callsLogic error$0
- ZetaChain Cross-Chain: Dirty EVM state changes are not committed before precompile calls, resulting in double-spending or loss of ZETA tokensLogic error$0
- ZetaChain Cross-Chain: Token Mismatch in SPL Token DepositsLogic error$0
- ZetaChain Cross-Chain: Lost funds on ZetaChain due to unprocessed ZEVM logsLogic error$0
- ZetaChain Cross-Chain: Abort processing after call originating from Solana will cause loss of fundsLogic error$0
- ZetaChain Cross-Chain: SUI receiver lacks validationLogic error$0
- ZetaChain Cross-Chain: SUI TSS drained due to lack of refund when the `withdraw/withdraw_and_call()` PTB failsLogic error$0
- ZetaChain Cross-Chain: Incorrect de-structuring of parse_intent()'s return value will trigger unexpected operationsLogic error$0
- ZetaChain Cross-Chain: Claiming delegation rewards via the precompile can result in a loss of ZETA rewards due to state synchronization issuesLogic error$0
- ZetaChain Cross-Chain: TON transactions risk being lost due to flawed transaction handlingLogic error$0
- ZetaChain Cross-Chain: ZETA coin type outbound CCTXs can be sent to unsupported external chains, which results in a DoS of the outbound queueLogic error$0
- ZetaChain Cross-Chain: Missing Nonce Reset During TSS Address Update Allowing Signature ReplayLogic error$0
- ZetaChain Cross-Chain: Protocol fee is stuck in the `crosschain` moduleLogic error$0
- ZetaChain Cross-Chain: TON Gateway transactions with a skipped compute phase will cause a panicLogic error$0
- ZetaChain Cross-Chain: Setting `RevertGasLimit` to a value larger than `uint64` in the Solidity gateway contract will cause a panic that prevents finalizing the inbound CCTX and observers from receiving block rewardsLogic error$0
- ZetaChain Cross-Chain: Outbound CCTXs to external chains are not properly validated, preventing subsequent outbounds to the external chain from being processedLogic error$0
- ZetaChain Cross-Chain: An attacker can stuff a Solana Outbound transaction with multiple instructions to block it from finalizingLogic error$0
- ZetaChain Cross-Chain: Impartially aborted CCTXs are incorrectly marked as refunded, resulting in a loss of fundsLogic error$0
- ZetaChain Cross-Chain: Stateful precompiles panic on empty calldata, which can be exploited to prevent finalizing outbound CCTXsLogic error$0
- ZetaChain Cross-Chain: TON Gateway withdrawals can be DOS'd with an invalid withdrawal recipientLogic 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: 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 Netting Logic Leads to Excessive Withdrawal AmountsLogic error$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
- SEDA Protocol: Tallying a Data Request with a wildcard expression in its consensus filter will store non-deterministic data and cause a chain haltLogic error$0
- SEDA Protocol: Anyone can post a request with `gasPrice` of 0 to cause SEDA chain to haltLogic error$0
- SEDA Protocol: Anyone can crash validators with a Tally VM program that panics the call_result_write importLogic error$0
- SEDA Protocol: Anyone can pass any length to some Tally imports to inflate memory, induce OOM, and crash validatorsLogic error$0
- SEDA Protocol: Chain can deadlock due to no consensus because New Validators can not submit vote extensionsLogic error$0
- SEDA Protocol: Malicious contracts can force excessive memory usage at minimal gas cost, threatening node stability and economic securityLogic error$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: ExecuteTallyVM has a memory leak which will lead to nodes eventually crashingLogic error$0
- SEDA Protocol: Mean-Based Outlier Detection Vulnerability Allows Single Node to Sabotage ConsensusLogic error$0
- SEDA Protocol: Data requests queue can be DoS'edLogic error$0
- SEDA Protocol: Attacker can exploits batch sender role to block result Submissions via fee transfer reversionLogic error$0
- SEDA Protocol: Gas costs are severely underpriced for certain WASM instructions which can lead to network DoSLogic error$0
- SEDA Protocol: Attackers can flood validators with Commit/Reveal execution messages to delay blocks or DOS the nodeLogic error$0
- SEDA Protocol: requestId has no unique parameters leading to different collisionsLogic error$0
- SEDA Protocol: Wrong amount of gas will be used in a certain caseLogic error$0
- SEDA Protocol: Tally VM startup costs not charged early enoughLogic error$0
- SEDA Protocol: Malicious proposer can submit a request with large invalid transactions because of no mempool to bloat the block storeLogic error$0
- SEDA Protocol: A request poster can set gas_price to 1 and pay minimal fees for a lot of gas and drain validators' resourcesLogic error$0
- SEDA Protocol: WASI imports can be exploited for unmetered execution or unbounded memory growthLogic error$0
- SEDA Protocol: Executors will get underpaid while excessive gas will be refunded to the requestorLogic error$0
- SEDA Protocol: The outlier gets the reduced payout when there is consensus on errorsLogic 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
- SEDA Protocol: Signatures for the first batch will be rejected by VerifyVoteExtensionHandlerLogic error$0
- SEDA Protocol: Validators will not be able to sign first batchLogic error$0
- SEDA Protocol: A jailed validator with no registered key blocks proving scheme activationLogic error$0
- SEDA Protocol: `call_result_write` import can be exploited for unmetered execution and memory growthLogic error$0
- Babylon Chain Launch (Phase-2): Refund mechanism doesn't make sure that there is a fee granterLogic error$0
- Babylon Chain Launch (Phase-2): Btcstaking module allows `stakingTx` to be coinbase transaction which is unslashable for 100 blocksLogic error$0
- Babylon Chain Launch (Phase-2): Message is indexed as refundable even if the signature was over a forkLogic error$0
- Babylon Chain Launch (Phase-2): maybeResendFromStore may wrongly submit a checkpoint transaction twiceLogic error$0
- Babylon Chain Launch (Phase-2): The EXPIRED judgment does not include the current blockLogic error$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: `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: Non-deterministic gas consumption due to shared `StateDB` pointer in bank keeper affecting consensusLogic error$0
- Nibiru: Vesting account preemption attack preventing future contract deploymentLogic error$0
- Nibiru: Nonce can be manipulated by inserting a contract creation `EthereumTx` message first in an SDK TX with multiple `EthereumTX` messagesLogic error$0
- Nibiru: Gas refunds use block gas instead of transaction gas, leading to incorrect refund amountsLogic error$0
- Nibiru: Double fee application breaks supply invariant for fee-on-transfer ERC20sLogic error$0
- Nibiru: The `bankBalance` function failed to handle errors correctlyLogic error$0
- Nibiru: Gas used mismatch in failed contract calls can lead to wrong gas deductionsLogic error$0
- Nibiru: Inconsistent fee denomination handling in transaction validation and buildingLogic error$0
- Nibiru: Hardcoded gas used in ERC20 queries allows for block production halt from infinite recursionLogic error$0
- Nibiru: ERC20 transfer fails with non-compliant tokens missing return valuesLogic error$0
- Nibiru: Unlimited Nibi could be minted because evm and bank balance are not synced when stakingLogic error$0
- Nibiru: Gas is not consumed when precompile method fail, allowing resource consumption related DOSLogic error$0
- Chakra: SettlementSignatureVerifier's `required_validators` is not updated, resulting in a low or high number of signatures being requiredLogic error$0
- Chakra: Inconsistent Handler Validation Behavior in Cairo ERC20Handler's Cross-Chain CallbackLogic error$0
- Chakra: `SettlementSignatureVerifier` is missing check for duplicate validator signaturesLogic error$0
- Chakra: Missing `ERC20Method` validation at destination allows non-transfer tx to be handled as transfersLogic error$0
- Chakra: In `settlement.cairo::receive_cross_chain_msg` - the message will always be marked with `Status::SUCCESS`Logic 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
- 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
- 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
- LoopFi: Directly sending dust token amount will slow down distribution in `MultiFeeDistribution.sol`Logic error$0
- LoopFi: An infinite loop in `MultiFeeDistribution.sol` withdrawLogic error$0
- NOYA: `executeWithdraw` may be blocked if any of the users are blacklisted from the `baseToken`Logic error$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
- 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
- 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
- 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: 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
- Rubicon: RubiconMarket `batchOffer` and `batchRequote` make offers as self; complete loss of funds for some types of tokens, for example WETHLogic error$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: `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
- 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: `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: 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
- Peapods: Vault inflation attack in `AutoCompoundingPodLp` is possible due to incorrectly minting dead sharesLogic error$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
- 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: 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
- 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
- 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
- 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: Bridge requests to remote chains where interchain tokens are not deployed can result in DoS attacksLogic 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: 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: 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: 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: Wrong modifier on `PreDeposit::setBondAndLeverageAmount` function leads to big differences in user balancesLogic error$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: `createPoolD650E2D0` will not work due to mismatch in solidity and stylus function definitionsLogic error$0
- Superposition: Tokens are pulled from users without verifying pool status contrary to requirementLogic error$0
- Superposition: Users are incorrectly refunded when liquidity is insufficientLogic error$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: 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: 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: 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
- Kakarot: `RIPEMD160` precompile crashes with a Cairo exception for some input lengthsLogic error$0
- Teller Lender Groups Update Audit: Lender group members can be prevented from burning their shares foreverLogic error$0
- Kakarot: Missing constraint in `default_dict_copy`Logic error$0
- Kakarot: `ExponentiationImpl::pow()` returns `0` for `0^0`Logic error$0
- Teller Lender Groups Update Audit: Users can lower the interest rate by dividing a loan into multiple smaller loansLogic error$0
- Kakarot: Non-finalized dictionary in RIPEMD160 allows forging of outputLogic error$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: `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: 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
- 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: 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: Adversary can use `send_nft` to bypass the payment and steal seller's token in auto-approve scenarioLogic error$0
- Coded Estate: Insufficient price validation in `transfer_nft` function enables theft of listed tokensLogic 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: Attakers can steal the funds from long-term reservationLogic error$0
- Coded Estate: Users can't cancel reservation due to out-of-gasLogic error$0
- Coded Estate: `setbidtobuy` allows token purchase even when sale is no longer listedLogic error$0
- Coded Estate: Reservations can be made outside of rental property's `available_period`Logic error$0
- Coded Estate: Can impersonate another high value rental because `token_uri` is arbitrary and supplied by userLogic error$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
- 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: 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: MixOracle is broken due to hardcoded positionLogic error$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: 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: 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
- 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
- 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: Malicious user may frontrun `GoodDollarExpansionController::mintUBIFromReserveBalance()` to make protocol funds stuckLogic error$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: Role providers cannot be EOAs as stated in the documentationLogic error$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: `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: 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: `_onTransferReceived()` does not work as intendedLogic error$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: 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: Exposed `_removeCredIdPerAddress` & `_addCredIdPerAddress` allows anyone to cause issues to current holders as well as upcoming onesLogic error$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
- Karak: When malicious behavior occurs and DSS requests slashing against vault during 2 day period after `SLASHING_WINDOW` of 7 days is passed after staker initiates a withdrawal, token amount to be slashed is calculated to be higher than what it s…Logic error$0
- Phi: `shareBalance` bloating eventually blocks curator rewards distributionLogic error$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
- Karak: Delayed slashing window and lack of transparency for pending slashes could lead to loss of fundsLogic error$0
- predict.fun lending market: A borrower can not repay to a USDC blacklisted lenderLogic error$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
- Reserve: The time available for a canceled withdrawal should not impact future unstaking processesLogic error$0
- SeeR PM: Users of protocol will be exposed to high slippage due to no callre-specified minimum output & deadline paramLogic error$0
- WOOFi Swap on Solana: State changes are overwritten during anchor serialization when two accounts are the sameLogic error$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: 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
- 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: 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: 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: 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: 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: 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
- 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
- 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: 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: 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: 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: 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: 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: Not decreasing oracle timestamp validation leads to DoS for protocol usersLogic error$0
- Velar Artha PerpDEX: User can sandwich their own position close to get back all of their position feesLogic error$0
- Velar Artha PerpDEX: LPs cannot specify min amount received in burn function, causing loss of fund for themLogic error$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: `AddToInTxTracker` doens't allow permissionless tx validation for Bitcoin chain, InTxTracker permissionless tx validation for Bitcoin chain will always failLogic error$0
- ZetaChain: `AddBlockHeader` Cannot Cope with ReorgsLogic error$0
- ZetaChain: Lagging median gas price when the set of observers changesLogic error$0
- ZetaChain: Arbitrary destination gas limit for `CoinType_Zeta` cctxs results in paying lower gas feesLogic error$0
- ZetaChain: Zeta Supply Inflation on Deploy Fungible Gas CoinLogic error$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: A single malicious observer can exploit the infinite gas meter to grief ZetaChain blocks without proper gas compensationLogic error$0
- ZetaChain: Observer can halt outbound cctxs and steal fundsLogic 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: UpdateSystemContract is not copying `gasPriceByChainId` state variable to the new upgraded which will halt ZRC20 token withdraw until system contract is updated accordinglyLogic error$0
- ZetaChain: ERC-20 deposit cctxs are refunded to the EOA instead of an intermediary contractLogic error$0
- ZetaChain: Inbound Tx Confirmation Bypass via Malicious ObserverLogic error$0
- ZetaChain: Incorrect genesis initialization of pending noncesLogic error$0
- ZetaChain: The outbound transaction tracker only keeps track of a maximum of two different transaction hashes, preventing cctxs from being efficiently confirmed and blocking the outbound transaction queueLogic error$0
- ZetaChain: The `Sender` of an outbound cctx originating from the zEVM is potentially set to an incorrect sender address resulting in lost assets during a refundLogic error$0
- ZetaChain: A single malicious observer can fill the block space with `MsgGasPriceVoter` messages without proper gas compensation resulting in griefing blocksLogic error$0
- ZetaChain: ZRC20 Token Pause Check BypassLogic error$0
- ZetaChain: Zeta token supply checker incorrectly classifies in-transit cctxs as settled resulting in misleading checksLogic error$0
- ZetaChain: Limited Voting Options Allow Ballot Creation SpamLogic error$0
- ZetaChain: JSON-RPC DoS through WebsocketsLogic error$0
- ZetaChain: `PayGasFeeInZetaAndUpdateCctx()` is prone to slippage, causing sender overpays the revert gas and lose returned fundsLogic 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: `wrapNativeTokenInWallet()` always reverts on ArbitrumLogic error$0
- BendDAO: Borrower can prevent yield position repayment and closure by the botLogic error$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
- 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: `executeYieldBorrowERC20()` checking `yieldCap` is wrongLogic error$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: 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
- 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: The bot won't be able to unstake or repay risky positions in the yield contractLogic error$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: 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: 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: `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: 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
- Canto: Incorrect names provided in `RegisterConcrete` calls break `LegacyAmino` signing methodLogic error$0
- Canto: `Govshuttle` module does not register its transaction `MsgServer`Logic error$0
- Canto: `MsgSwapOrder` will never work for Canto nodesLogic error$0
- Canto: An attacker can DoS a coinswap poolLogic error$0
- Munchables: Single plot can be occupied by multiple rentersLogic error$0
- Munchables: Failure to update dirty flag in `transferToUnoccupiedPlot` prevents reward accumulation on valid plotLogic error$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: The LPP proposer may not be reimbursed their gas costs by the bonds at `MAX_GAME_DEPTH` because `step()` does not check if the LPP proposer is the one that called itLogic 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: 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: StakingToken.sol doesn't properly handle FOT, rebasing tokens or those with variable which will lead to accounting issues downstreamLogic error$0
- Olas: In `retain` function, `checkpoint` nominee function is not called which can cause zero amount of tokens being retainedLogic error$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
- 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
- BadgerDAO: Incorrect comparison logic in post-operation checksLogic error$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: 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
- 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
- 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
- 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: Hardcoded incorrect `getLidoData` timestamp, resulting in incorrect base point `Apr. Loans` can be validated with a substantially low `baseRate` interestLogic error$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
- Exactly Protocol Update - Staking Contract: Setting a new market will make depositing to the market impossible when harvesting, DoSing depositsLogic error$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
- 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
- Allora: The SelectTopNWorkerNonces function lacks a sorting algorithm internally.Logic error$0
- Curves Protocol: Theft of holder fees when `holderFeePercent` was positive and is set to zeroLogic error$0
- Allora: `GenerateForecastScores` acidentally updates inferences scoresLogic error$0
- Allora: math miscalculation artificially deflates scoresLogic error$0
- Allora: Silent Failure in MustNewDecFromString Can Lead to Node CrashesLogic error$0
- Allora: Topics wont activate even with a sufficient stakeLogic error$0
- Allora: Missing highestVotingPower Update in argmaxBlockByStake Resulting in Incorrect Block SelectionLogic error$0
- Allora: Standard deviation calculation is biasedLogic error$0
- Allora: The formula for forecast normalization differs from the one in the whitepaper.Logic error$0
- Allora: Mint and Emissions modules register errors with an error code of 1Logic error$0
- Allora: incorrect condition for the iterative update of Equation 34Logic error$0
- Allora: Malicious peer can cause a syncing node to panic during blocksyncLogic error$0
- Curves Protocol: `Curves::_buyCurvesToken()`, Excess of Eth received is not refunded back to the user.Logic error$0
- Allora: SetDelegateStakePlacement error is not handled in RewardDelegateStakeLogic error$0
- Allora: Funding amount is accounted twice leading to activating topic before reaching the global minimumLogic error$0
- Allora: `msg_server_stake::AddStake` calculates the weight incorrectly resulting in incorrect activation of a topicLogic error$0
- Allora: Treasury cap restriction will not hold and one block per month will be compromisedLogic error$0
- Allora: The worker and reputer's payload may be tampered due to lack of check for the pubkey's ownershipLogic error$0
- Allora: The malicious node may not execute the http requestLogic error$0
- Allora: If old coefficient is bigger than the new one then the reputer has it's coeff reduced more than it shouldLogic error$0
- Allora: SafeApplyFuncOnAllActiveEpochEndingTopics processes two more pages than the desired max topic pageLogic error$0
- Allora: emissions/keeper/GetIdsOfActiveTopics may always return empty array []Logic error$0
- Allora: Anyone can overwrite Reputer and Worker info attached to a LibP2PKeyLogic error$0
- Allora: Not appropriate Inferences will be used when calculating the forecastLogic error$0
- Allora: logic bug in this IBC middleware code related to packet handling.Logic error$0
- Curves Protocol: Protocol and referral fee would be permanently stuck in the Curves contract when selling a tokenLogic error$0
- Allora: Potential race conditions due to usage of ````sdk.Context```` in concurrent goroutinesLogic error$0
- Allora: `AlloraPendingRewardForDelegator` module account could have insufficient rewards due to truncationLogic error$0
- Allora: Broken invariant : the sum of all (delegateRewardsPerShare * delegated stakeLogic error$0
- Allora: SendDataWithRetry doesn't work properly(Retries will not happen)Logic error$0
- Allora: Incomplete Zero-Height Genesis Preparation in Allora NetworkLogic error$0
- Allora: Adversary can arbitrarily trigger a chain halt by sending `MsgRemove{Delegate}Stake` with negative amountLogic error$0
- Allora: RemoveDelegateStake silently handles the error when checking for existing removalsLogic error$0
- Allora: Lack of error handling when making blockless api callLogic error$0
- Allora: coefficients math mistakenly calculates the coefficient diff with the same valueLogic error$0
- Allora: Unchecked Error in ResetChurnableTopics FunctionLogic error$0
- Allora: RemoveStakes and RemoveDelegateStakes silently handle errors in EndBlockerLogic error$0
- Curves Protocol: `onBalanceChange` causes previously unclaimed rewards to be clearedLogic error$0
- Allora: `GetForecastScoresUntilBlock` can get more score samples than the max allowedLogic error$0
- Allora: topic_rewards/SafeApplyFuncOnAllActiveEpochEndingTopics used the wrong parametersLogic error$0
- Curves Protocol: Stuck rewards in `FeeSplitter` contractLogic error$0
- Allora: `DripTopicFeeRevenue` drips the internal `topicFeeRevenue` and not the one provided by `GetCurrentTopicWeight`Logic error$0
- Allora: Malicious Reputer cause emissions/msgserver/InsertBulkReputerPayload to failLogic error$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
- Allora: Some Iterators are not closed in emissions module KeeperLogic error$0
- Allora: Incomplete Topic Processing Due to Continuous Retry on Pagination ErrorLogic error$0
- Curves Protocol: Unrestricted claiming of fees due to missing balance updates in `FeeSplitter`Logic error$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: Possible DoS When calling `GammaTradeMarket::_removePosition` will cause user position to not be able to get liquidatedLogic error$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
- 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: 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: Voting does not take into account end of staking lock periodLogic error$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
- 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: 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: `_splitWithdrawRequest` will make invalid withdraw requests in an edge caseLogic error$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
- 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
- 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: 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
- 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: Vault can be DoSLogic error$0
- BakerFi: `deposit()` `afterDeposit` calculation formula is incorrectLogic error$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
- Aleo: `delegated[]` state is not removed after it reaches zero, potentially leading to higher computational costs and DoSLogic error$0
- Aleo: `unbond_public` logic causes issues for some delegators preventing partial withdrawalsLogic error$0
- Panoptic: `_updateSettlementPostBurn()` may not correctly reduce `s_grossPremiumLast[chunkKey]`Logic error$0
- Panoptic: ` validateCallback()` is vulnerable to a birthday attackLogic error$0
- Andromeda – Validator Staking ADO and Vesting ADO: Valid VFS paths with usernames can always fail validationLogic error$0
- Andromeda – Validator Staking ADO and Vesting ADO: Lockup of vestings or completion time can be bypassed due to missing check for staked tokensLogic error$0
- Andromeda – Validator Staking ADO and Vesting ADO: if Slash Validator occurs, UNSTAKING_QUEUE's unstake amount will not be accurateLogic error$0
- Andromeda – Validator Staking ADO and Vesting ADO: the DEFAULTVALIDATOR cannot be changedLogic error$0
- Andromeda – Validator Staking ADO and Vesting ADO: Permission checks will unnecessarily consume Limited usesLogic error$0
- Velvet Capital: Rebalancing : `updateWeights` could revert to due to strict check for swap. This would impact the timely rebalancing.Logic error$0
- Andromeda – Validator Staking ADO and Vesting ADO: when a validator is kicked out of the bonded validator set ,unstake funds will remain in the contractLogic error$0
- Andromeda – Validator Staking ADO and Vesting ADO: Staked tokens will get stuck after claimLogic error$0
- Andromeda – Validator Staking ADO and Vesting ADO: is_permissioned() may underflowLogic error$0
- Andromeda – Validator Staking ADO and Vesting ADO: Changes of the `UnbondingTime` are not accounted forLogic error$0
- Andromeda – Validator Staking ADO and Vesting ADO: is_permissioned() It doesn't make sense to have permissions by default after Blacklisted expires.Logic error$0
- Andromeda – Validator Staking ADO and Vesting ADO: Calculating tax amount does not include taxes in `WasmMsg::Execute` messagesLogic error$0
- Andromeda – Validator Staking ADO and Vesting ADO: Batch creation will break if vestings are opened to recipientsLogic 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
- 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
- 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: 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
- 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: Liquidating positions with bounded Kerosen could be unprofitable for liquidatorsLogic error$0
- DYAD: No incentive to liquidate when `CR <= 1` as asset received `<` dyad burnedLogic error$0
- DYAD: No incentive to liquidate small positions could result in protocol going underwaterLogic error$0
- Arbitrum Foundation: Adversary can make honest parties unable to retrieve their assertion stakes if the required amount is decreasedLogic error$0
- DYAD: Users can get their Kerosene stuck until TVL becomes greater than Dyad's supplyLogic error$0
- DYAD: Flash loan protection mechanism can be bypassed via self-liquidationsLogic error$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
- 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: 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: 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
- 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: Withdrawals can be locked forever if recipient is a contractLogic error$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: 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: Freezed Chain will never be unfreeze since `StateTransitionManager::unfreezeChain` is calling `freezeDiamond` instead of `unfreezeDiamond`Logic error$0
- Lavarage: Borrowers can avoid the payment of an interest share fee by setting themselves as a `fee_receipient`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
- Lavarage: Malicious borrowers will never repay loans with high interestLogic 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: 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: `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: `TapiocaOptionBroker.participate()` with the approve authorization, it still cannot be executedLogic error$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: `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: `_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
- 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: 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: 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: `V3Vault` is not ERC-4626 compliantLogic error$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
- Metrom: Gas griefing vulnerability in `createCampaigns` functionLogic error$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
- Kintsu: Potential DOS in `delegate_compound` FunctionLogic 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: Fighters cannot be minted after the initial generation due to uninitialized `numElements` mappingLogic error$0
- AI Arena: Minter / Staker / Spender roles can never be revokedLogic error$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: 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
- Abracadabra Money: Staking contract is not able to support native USDB/WETHLogic error$0
- Wise Lending: A user can lose more value than he specifies in the spread when he enters a `PowerFarm`Logic error$0
- Wise Lending: First depositor inflation attack in `PendlePowerFarmToken`Logic error$0
- Abracadabra Money: A user's tokens could be locked for an extended duration beyond their intention and without their controlLogic error$0
- Wise Lending: Unchecked return value bug on `TransferHelper::_safeTransferFrom()`Logic error$0
- Wise Lending: Incorrect calculation of lending shares in `_withdrawOrAllocateSharesLiquidation` can lead to revert and failure to liquidateLogic error$0
- Abracadabra Money: Tokens yeild can not be set to claimable.Logic error$0
- Wise Lending: Lack of update when modifying pool feeLogic error$0
- Wise Lending: User's attempt to deposit & withdraw reverts due to the calculation style inside `_calculateShares()`Logic error$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
- 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: 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: 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: 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: Taiko SGX Attestation - Improper validation in certchain decodingLogic error$0
- Taiko: Validity and contests bond ca be incorrectly burned for the correct and ultimately verified transitionLogic error$0
- Taiko: LibProposing:proposeBlock allows blocks with a zero parentMetaHash to be proposed after the genesis block and avoid parent block verificationLogic error$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
- TITLES Publishing Protocol: TitlesGraph::acknowledgeEdge() methods do not write acknowledgments to storageLogic error$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
- 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
- TITLES Publishing Protocol: `Edition.supportsInterface` is not EIP1155 compliantLogic error$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: 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
- 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: 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: crvRewardsContract `getReward` can be called directly, breaking vaults `claimRewards` functionallityLogic error$0
- Gitcoin Passport: `userTotalStaked` invariant will be broken due to vulnerable implementations in `release()`Logic error$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: DOS of proposals by abusing ballot names without important parametersLogic error$0
- Salty.IO: First depositor can break staking-rewards accountingLogic error$0
- Salty.IO: First Liquidity provider can claim all initial pool rewardsLogic error$0
- Salty.IO: PriceFeed is likely to be disabled in times of volatility, causing liquidations and borrows to freezeLogic error$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
- Phala Network: Limited availability of `balance_of(...)` methodLogic error$0
- Phala Network: A cache that times out can be recoveredLogic error$0
- Phala Network: An attacker can crash the cluster system by sending an HTTP request with a huge timeoutLogic 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: An attacker possesses the capability to exhaust the entirety of liquidity within the stable swap pools by manipulating the buy function, specifically by setting the `asset_in` parameter equal to the `asset_out` parameterLogic error$0
- HydraDX: Complete liquidity removals fail from stableswap poolsLogic error$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
- 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: Withdrawal from NFTs can be temporarily blockedLogic error$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: 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
- 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: 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: 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
- 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: 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: User's can be grieved by not submitting the private keyLogic error$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
- WagmiLeverage V2: Liquidation bonus scales exponentially instead of linearly.Logic error$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
- RadicalxChange: Highest bidder can withdraw his collateral due to a missing check in _cancelAllBidsLogic error$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
- WOOFi Swap: In the function _handleERC20Received, the fee was incorrectly chargedLogic error$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
- reNFT: Assets in a Safe can be lostLogic error$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: 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: 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
- 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: Borrow fees can be arbitrarily increased without the maker providing any valueLogic error$0
- Perpetual: OracleMaker's price with spread does not take into account the new positionLogic error$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: `_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: 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: buyCollateral() does not work properlyLogic error$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: `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: 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: BBLeverage's and SGLLeverage's `buyCollateral()` remove the required funds from the target twiceLogic error$0
- Tapioca: TOFTOptionsReceiverModule's and UsdoOptionReceiverModule's exerciseOptionsReceiver can lose the option payment providedLogic error$0
- Opus: Attacker can lock every trove withdrawalsLogic error$0
- Opus: Multiplier is incorrectly calculated in `Controller`Logic error$0
- Opus: Neglect of exceptional redistribution amounts in `withdraw_helper` functionLogic 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: `convert_to_yang_helper()` loss precisionLogic error$0
- Opus: An attacker could manipulate debt exceptional redistribution because it is allowed to deposit into any troveLogic 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
- Opus: Shrine's recovery mode can be weaponized as leverage to liquidate healthy trovesLogic error$0
- Opus: Unhealthy troves with LTV > 90% cannot always be absorbed as intendedLogic error$0
- Opus: Collateral cannot be withdrawn from trove once yang is suspendedLogic error$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: 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: Malicious operators can `undelegate` theirselves to manipulate the LRT exchange rateLogic error$0
- Smilee Finance: Position Manager providing the wrong strike when storing user's position dataLogic error$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: 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: 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: EIP-155 is not enforced, allowing attackers/malicious operators to profit from replaying transactionsLogic error$0
- zkSync: TransactionValidator checks intrinsic costs against wrong valueLogic error$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: 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: Discrepancy in Default Account BehaviorLogic error$0
- zkSync: Unit difference between transaction encoding and bootloader memory constantLogic error$0
- Fenix Finance: Single-step process for critical ownership transfer is very riskyLogic error$0
- Real Wagmi #2 Update: A borrower eligible for liquidation can pay an improperly large amount of fees, and may be unfairly liquidatedLogic 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: 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
- 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: 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: `fillOrder` not properly cancel order when collateral of position is emptyLogic error$0
- Ethereum Credit Guild: LendingTerm `debtCeiling` function uses `creditMinterBuffer` incorrectlyLogic error$0
- Ethereum Credit Guild: `LendingTerm` inconsistency between debt ceiling as calculated in `borrow()` and `debtCeiling()`Logic error$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
- 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
- INIT Capital: MarginTradingHook users could potentially be DOSedLogic error$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: 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: `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
- 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
- Collective: Since art pieces' size is not limited, attacker may block AuctionHouse from creating and settling auctionsLogic error$0
- Collective: `CultureIndex.sol#dropTopVotedPiece()` - Malicious user can manipulate topVotedPiece to DoS the whole CultureIndex and AuctionHouseLogic error$0
- Collective: MaxHeap.sol: Already extracted tokenId may be extracted againLogic error$0
- Collective: `VerbsToken.tokenURI()` is vulnerable to JSON injection attacksLogic error$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: update_market() market weight incorrectLogic error$0
- Canto: update_market() nextEpoch calculation incorrectLogic error$0
- Olas: Griefing attack on `liquidity_lockbox` withdrawals due to lack of minimum depositLogic error$0
- Olas: Wrong invocation of Whirpools's updateFeesAndRewards will cause it to always revertLogic error$0
- Asymmetry Finance: Forced relock in VotiumStrategy withdrawal causes denial of service if Convex locking contract is shutdownLogic error$0
- Olas: Permanent DOS in `liquidity_lockbox` for under $10Logic 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: AfEth collaterals cannot be balanced after ratio is changedLogic error$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
- 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: 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: Incorrect price used when updating the global position dataLogic error$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
- Particle Protocol: Malicious lender can manipulate the fee to force borrower pay high premiumLogic error$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
- 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: 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: 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: 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: 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: 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
- Notional Update #5: getOracleData() maxExternalDeposit not accurateLogic error$0
- Notional Update #5: Lender transactions can be front-run, leading to lost fundsLogic error$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: 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: Decimals of LendingPool don't take into account the offset introduced by VIRTUAL\_SHARESLogic error$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
- 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
- PartyDAO: `PartyGovernanceNFT.sol#mint` - User can delegate another users funds to themselves and brick them from changing the delegationLogic error$0
- NextGen: `MinterContract::payArtist` can result in double the intended payoutLogic error$0
- Truflation: TrufVesting.cancelVesting calculates end of vesting incorrectlyLogic error$0
- NextGen: Auction winner can prevent payments via `safeTransferFrom` callbackLogic error$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: 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
- NextGen: Auction payout goes to `AuctionDemo` contract owner, not the token ownerLogic error$0
- Truflation: Ended locks can be extendedLogic error$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: Mismatch between the SAFE generated debt and the amount of the system tokens minted for the userLogic error$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: 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: Malicious users are able to bypass the Tax payment using making a Fake BasicActions ContractLogic error$0
- Open Dollar: Vault721.tokenURI does not comply with ERC721 - Metadata specificationLogic error$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
- 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: `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
- Centrifuge: `LiquidityPool::requestRedeemWithPermit` transaction can be front run with the different liquidity poolLogic error$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
- Lybra Finance: Understatement of `poolTotalPeUSDCirculation` amounts due to incorrect accounting after function `_repay` is calledLogic error$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: `LybraPeUSDVaultBase.rigidRedemption` should use `getBorrowedOf` instead of `borrowed`Logic error$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: Potential `stake()` DoS if sole safETH holder (ie: first depositor) unstakes `totalSupply` - 1Logic error$0
- Asymmetry Finance: sFrxEth may revert on redeeming non-zero amountLogic error$0
- Asymmetry Finance: Stuck ether when use function `stake` with empty `derivatives`(`derivativeCount` = 0)Logic error$0
- Asymmetry Finance: No slippage protection on `stake()` in SafEth.solLogic error$0
- Ethos Reserve: `_harvestCore()` roi calculation errorLogic error$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: 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: Doesn't Follow ERC1271 StandardLogic error$0