Other protocol vulnerabilities in disclosed bug bounty reports
Staking, derivatives, insurance, identity, gaming and infrastructure findings that do not fit the primary protocol categories.
- Reports indexed
- 708
- Total paid
- $352k
- Critical
- 2
- Largest payout
- $350k
This group holds everything with a distinct economic design that the main categories do not cover: liquid staking and validator accounting, perpetuals and options with their own margin engines, insurance and coverage pools, identity and attestation systems, and on-chain games.
The findings are heterogeneous but the review discipline is the same — reconstruct the invariant, then find the input that breaks it — and several of the most instructive write-ups on the platform sit in this bucket precisely because the designs are unusual.
Filtering by vulnerability category is generally the better lens here than protocol type.
What reviewers look for
- Custom margin or collateral engines with untested boundary behaviour
- Staking and reward accounting under partial withdrawal or slashing
- Coverage and claims logic reachable outside the intended lifecycle
- Cross-protocol integrations trusting an external accounting value
- Novel mechanisms without an established review checklist
Curated highlights
The largest disclosed payouts in this group, with our own summary of each. Every report links back to the original disclosure.
Governance proposal executes arbitrary call via delegatecall module
A severe vulnerability in the governance timelock contract enabled proposal execution using DELEGATECALL without restricting the target address to a verified allowlist. Because the delegatecall target contract operated within the context of the timelock's storage without layout restrictions, a malicious proposal could overwrite key storage slots. An attacker leveraging flash loans or governance weight could pass a proposal that delegated to a custom contract, overwriting the timelock admin address in slot 0 to hijack governance authority and drain treasury funds.
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.
Rigor Protocol: New subcontractor can be set for a SCConfirmed task without current subcontractor consent
Rigor Protocol's subcontractor management lets a builder or contractor reassign a task's subcontractor through inviteSC() without any signature check, whereas changing terms mid-task normally requires consent from all parties via checkSignatureTask(). Although the direct path (replacing a subcontractor on an already-confirmed, active task) is blocked by inviteSubcontractor()'s onlyInactive modifier, the warden showed the check is bypassed in changeOrder() budget-increase flows: when added funds are not yet lent, the task is unapproved and reset to inactive, after which a dishonest contractor can invite their own subcontractor who then collects the full task budget on completion, divesting the subcontractor who actually performed the work of their payment.
All reports in this group
- Putty: [Denial-of-Service] Contract Owner Could Block Users From Withdrawing Their StrikeAccess control$0
- PoolTogether: The tier odds in `TieredLiquidityDistributor` are incorrectLogic error$0
- PoolTogether: If the underlying asset is a fee on transfer token, it could break the internal accounting of the vaultLogic 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
- 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
- Union Finance: Duplicate `utoken` and `usermanager` can be added which cannot be deletedLogic error$0
- PoolTogether: `drawManager` can be set to a malicious addressAccess control$0
- PoolTogether: Vault contribution calculations wrongly include the current round when claiming prizesLogic 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: Attacker can drain all the projects within minutes, if admin account has been exposedAccess control$0
- Rigor Protocol: `Project.raiseDispute()` doesn't use approvedHashes - meaning users who use contracts can't raise disputesLogic error$0
- Putty: Put options are free of any feesInteger overflow/underflow$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
- PoolTogether: Tiers can be maintained active to give unfair advantage to user through DoSLogic error$0
- Putty: Zero strike call options will avoid paying system feeLogic error$0
- Rigor Protocol: In `Project.setComplete()`, the signature can be reused when the first call is reverted for some reasonLogic error$0
- Putty: Options with a small strike price will round down to 0 and can prevent assets to be withdrawnInteger overflow/underflow$0
- Rigor Protocol: Untyped data signingLogic error$0
- PoolTogether: A malicious user can steal other user's deposits from Vault.solFlash loan attack$0
- Putty: Put option sellers can prevent exercise by specifying zero amounts, or non-existant tokensLogic error$0
- PoolTogether: Increasing reserves breaks PrizePool accountingFront-running / MEV$0
- Putty: Order duration can be set to 0 by Malicious makerLogic error$0
- Putty: `acceptCounterOffer()` May Result In Both Orders Being FilledFront-running / MEV$0
- Rigor Protocol: Add members to the not yet created communityAccess control$0
- PoolTogether: Resetting delegation will result in user funds being lost foreverLogic error$0
- PoolTogether: `VaultFactory` allows deployment of vaults with non-authentic `TwabController` and `PrizePool`Logic error$0
- PoolTogether: Silent overflow could alter computation when calculating the `vaultPortion` in the `PrizePool` contractInteger overflow/underflow$0
- PoolTogether: Number of prize tiers always increases if just 1 canary prize is claimedLogic error$0
- PoolTogether: `Vault.mintWithPermit()` can be DoS'dFront-running / MEV$0
- Putty: Fee is being deducted when Put is expired and not when it is exercised.Logic error$0
- PoolTogether: Delegated amounts can be forcefully removed from anyone in the `TwabController`Logic error$0
- PoolTogether: `Claimer.claimPrizes` can be front-runned in order to make losses for the claim botFront-running / MEV$0
- Putty: Order cancellation is prone to frontrunning and is dependent on a centralized databaseFront-running / MEV$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
- Centrifuge Protocol V3.1: Malicious adapters can exploit message batching via adapter-side reentrancy to cause message loss for any other poolReentrancy$0
- Centrifuge Protocol V3.1: Prices computed in SimplePriceManager is off even after `BatchRequestManager#revokeShares()` is calledLogic error$0
- Inverse Finance - Junior Tranche: ERC4626 maxDeposit() Violates Standard by Not Enforcing Actual Deposit LimitsLogic 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: System underpays cashback on BNB: hardcoded “USDC = 6 decimals” causes 1e12× underpayment when USDC is 18-decLogic error$0
- Brevis Pico ZKVM: Missing `offset` check will cause integer overflow violating ELF specificationInteger overflow/underflow$0
- Brevis Pico ZKVM: `operand_to_check` is not constrained to be a valid word in `eval_ecall`Logic error$0
- Brevis Pico ZKVM: First chunk having cpu chip is incorrectly checked in convert circuitLogic 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: incompatible library used for Fee on Transfer tokensLogic error$0
- Ammplify: X/Y mix-up in ViewWalker.down will underreport X fees and block taker closesLogic error$0
- Ammplify: Shift-Overflow in getEquivalentLiq Inflates LP SharesInteger overflow/underflow$0
- Ammplify: Mismatch in actual pool's liquidity and pool node's liquidity infomation because of wrong `route` in `PoolWalker.settle`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: 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: The incorrect initialize of `specific_emissions_per_gauge` in `GaugeController::add_gauge()`Governance attack$0
- Yield Basis: InflationaryVest.vy: Missing update of self.claimed allows infinite multiple claims by the recipientLogic error$0
- Neutrl Protocol: FULL_RESTRICTED_STAKER_ROLE Blacklist Bypass in Deposit and Mint FunctionsAccess control$0
- Mellow Flexible Vaults: ETH redemptions via `SignatureRedeemQueue` are broken due to missing `receive` functionLogic 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: Flawed Logic in `ShareManager` Inverts Transfer Whitelist BehaviorLogic 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: DoS in Redemption Due to Unchecked Asset Support in SubvaultsLogic error$0
- Notional Exponent: Emission rewards will keep accruing even the yield strategy is emptyLogic error$0
- Notional Exponent: `DineroWithdrawRequestManager` vulnerable to token overwithdrawal via batch ID overlapLogic error$0
- Symbiotic Relay: BlsBn254 is not available in certain chains due to hardcoded gas limitLogic error$0
- Symbiotic Relay: `autoDeployedVault` mapping is not updated after `unregisterOperatorVault`Logic error$0
- Symbiotic Relay: Enabling the whitelist can grant a malicious operator a temporary whitelisted statusAccess control$0
- Superfluid Locker System: User can instantly `unlock` most of his funds with less fee when he is unique `staker`/`liquidityProvider`Logic error$0
- LayerEdge - Staking: When `stakerCountInTree` Increases, Some Users May Receive Less InterestLogic error$0
- Yearn yBOLD: A malicious attacker can steal 25% of the funds of the first depositor in a strategyFront-running / MEV$0
- LayerEdge - Staking: stakerTierHistory is an unbound array that can be extended such that a user's funds are permamently lostLogic error$0
- Burve: Incorrect implementation of `ERC4626ViewAdjustor`Logic error$0
- Burve: Incorrect tax distribution when adding value single-sidedReentrancy$0
- Burve: An attacker can drain assets from a Closure by exploiting the NoopVault via a donation attackFront-running / MEV$0
- Crestal Network: Signature Replay attack possible on `updateWorkerDeploymentConfigWithSig()` in Blueprintcore.sol which leads to users lose the fundsSignature replay$0
- Crestal Network: Lack of access control in `setWorkerPublicKey()` in BlueprintCore.sol which results users to lose fundsAccess control$0
- Crestal Network: Anyone who is approving `BlueprintV5` contract to spend ERC20 can get drained because `Payment::payWithERC20`Access control$0
- SEDA Protocol: Chain can deadlock due to no consensus because New Validators can not submit vote extensionsLogic error$0
- Symmio, Staking and Vesting: Malicious User can dilute staking Rewards to a longer timeframeLogic 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: Attacker can front-run Withdraw and steal the withdrawalFront-running / MEV$0
- SEDA Protocol: Anyone can front-run the creation of a vesting account to block itFront-running / MEV$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: `Vault::_calcDeposit()` will overflow for low priced tokensInteger overflow/underflow$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
- Nibiru: Non-deterministic gas consumption due to shared `StateDB` pointer in bank keeper affecting consensusLogic 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
- 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
- Peapods: hardcoded V3_POS_MGR address won't be the same on every chainLogic 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: Incomplete TVL Calculation in `AerodromeConnector::_getPositionTVL` FunctionLogic error$0
- Peapods: Improper Handling of Paused Tokens in `TokenRewards._resetExcluded()` FunctionLogic 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
- NOYA: Decreasing a position in PendleConnector will remove it even if there's still a stake at PenpieLogic error$0
- Rubicon: Calling `ExpiringMarket.stop` and `ExpiringMarket.isClosed` functions cannot pause any functionlities of the marketLogic 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: Honest users could be permanently DOS'd from withdrawing their vested tokens/rewardsAccess control$0
- Rubicon: RubiconMarket `batchOffer` and `batchRequote` make offers as self; complete loss of funds for some types of tokens, for example WETHLogic error$0
- Rubicon: REENTRANCY ATTACK POSSIBLE IF THE `_feeTo` IS A MALICIOUS CONTRACT IN `FeeWrapper._chargeFeePayable()` FUNCTIONReentrancy$0
- NOYA: Invalid calculation of position TVL in Pendle connectorLogic error$0
- Rubicon: Some offers can't be cancelledLogic error$0
- Rubicon: Reward accounting is incorrect in `BathBuddy` contractLogic 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
- Rubicon: Low level calls to accounts with no code will succeed in `FeeWrapper`Logic error$0
- NOYA: `PendleConnector` incorrectly sends the redeemed `PT` tokens to the marketLogic error$0
- Peapods: `PodUnwrapLocker` can be drained due to an arbitrary inputLogic error$0
- Peapods: Malicious actors can front-run setYieldConvEnabledFront-running / MEV$0
- LoopFi: ChefIncentivesController caches `endRewardTime`, which is not required, and may cause issues during reward updateLogic error$0
- Perennial V2 Update #4: Vault.settle(account=coordinator) will lose profitSharesLogic error$0
- Plaza Finance: The state variable `BondToken.globalPool` is updated incorrectly via `Pool.startAuction()`Logic error$0
- Plaza Finance: Malicious user can leverage flash loans to claim all coupon rewardsFlash loan attack$0
- Plaza Finance: Approval overflow causes DoS in `BalancerRouter`'s `exitPlazaAndBalancer`Integer overflow/underflow$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: 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: BalancerRouter is implemented incorrectly and will cause loss of funds when depositing to predepositsLogic error$0
- Plaza Finance: Rounding loss in Auction#slotSize allows malicious user to force auction to be undersoldInteger overflow/underflow$0
- Plaza Finance: User may lose funds if they call `BalancerRouter::joinBalancerAndPredeposit`Logic error$0
- Superposition: No slippage control when withdrawing a position leads to loss of fundsFront-running / MEV$0
- Autonomint Colored Dollar V1: Malicious users can DOS the protocol by setting downsideProtected to a large valueLogic error$0
- Kakarot: Reentrancy check in `account_contract` can be easily circumventedReentrancy$0
- Kakarot: `RIPEMD160` precompile crashes with a Cairo exception for some input lengthsLogic error$0
- Kakarot: Prover can cheat in `felt_to_bytes_little` due to value underflowInteger overflow/underflow$0
- Kakarot: Missing constraint in `default_dict_copy`Logic error$0
- Kakarot: `decode_legacy_tx` allows validation of signatures with `chain_id` that are larger than felt, and overflowsInteger overflow/underflow$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: Create order can be DOSed as there is no compulsory fee collected during the creation/cancellation of ordersLogic 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: Missing slippage protection on `sellVotes()`Front-running / MEV$0
- Ethos Network Financial Contracts: Market funds cannot be withdrawn because of incorrect calculation of `fundsPaid`Logic error$0
- Ethos Network Financial Contracts: Users could overpay fees when buying votesLogic error$0
- Ethos Network Financial Contracts: Separate calculation of fees in applyFees results in inflated total fee percentage.Logic error$0
- Coded Estate: 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: Reservations can be made outside of rental property's `available_period`Logic error$0
- Debita Finance V3: Previous owner can steal unclaimed bribes from new owner of veNFTVaultAccess control$0
- Superfluid Locker System: An attacker may DoS user Fluid balance increases by frontrunning `FluidLocker::claim()` calls and calling `EP_PROGRAM_MANAGER::batchUpdateUserUnits()` directlyReentrancy$0
- Superfluid Locker System: `FluidLocker::_getUnlockingPercentage()` divides before multiplying, suffering a significant precision errorInteger overflow/underflow$0
- Superfluid Locker System: `FluidLocker::_getUnlockingPercentage()` uses 540 instead of `540 days` leading to stuck funds as the unlocking percentage will be bigger than `100%` and underflowInteger overflow/underflow$0
- HatsSignerGate v2: Signer can avoid restrictions and change `safe` state variablesReentrancy$0
- Kleidi: Wrong handling of call data check indices, forcing it sometimes to revertLogic error$0
- Kleidi: `UpdateExpirattionPeriod()` cannot be executed when the `newExpirationPeriod` is less than `currentExpirationPeriod`Logic error$0
- Kleidi: Gas griefing/attack via creating the proposalsLogic error$0
- vVv Launchpad - Investments & Token distribution: Anyone can call `VVVVCTokenDistribution::claim` function by utilizing `ClaimParams` signed by the `signer`Access control$0
- Usual V1: A missing reward update in UsualSP::removeOriginalAllocation will cause reduced reward accumulation for usersLogic error$0
- Usual V1: Withdrawal fee for UsualX vault will be mis-calculated.Logic error$0
- Ethos Network Social Contracts: Restored addresses will not be able to take any action on behalf of the profile due to still being marked as compromisedLogic error$0
- Ethos Network Social Contracts: Corruptible Upgradability PatternLogic error$0
- Orderly Solana Vault Contract: A malicious user can withdrawals another user's moneyAccess control$0
- Orderly Solana Vault Contract: [H-1]Access control$0
- The Wildcat Protocol: Users are incentivized to not withdraw immediately after the market is closedLogic error$0
- The Wildcat Protocol: `AccessControlHooks` `onQueueWithdrawal()` does not check if market is hooked which could lead to unexpected errors such as temporary DoSFront-running / MEV$0
- The Wildcat Protocol: Role providers can bypass intended restrictions and lower expiry set by other providersAccess control$0
- Superposition: `decrPosition09293696` will not work due to incorrect function signatureLogic error$0
- Superposition: No related function to set `fee_protocol`Logic error$0
- Superposition: Users can't remove liquidity while a pool is disabledAccess control$0
- Fenix Finance: `dettachFromManagedNFT` might revert and temporarily prevent users from detaching in certain situationsReentrancy$0
- Fenix Finance: `boostedValue` should be added to `permanentTotalSupply` for permanently locked tokensInteger overflow/underflow$0
- Fenix Finance: Potential incorrect index update in revived gauge under specific conditionsLogic error$0
- Fenix Finance: If rewards are not distributed to some gauges in an epoch, it can lead to incorrect rewards distribution in the next epochLogic error$0
- Fenix Finance: The `VoterUpgradeableV2.createV3Gauge` function incorrectly uses `v2GaugeFactory` instead of `v3GaugeFactory`Logic error$0
- Fenix Finance: `killGauge()` will lead to wrong calculation of emissionLogic error$0
- Phi: Refunds sent to incorrect addresses in certain casesLogic error$0
- Karak: Slashings will always fail in some casesLogic error$0
- Phi: PhiNFT1155 contracts continue sending fees/royalties to old protocol destination addressAccess control$0
- Phi: Exposed `_removeCredIdPerAddress` & `_addCredIdPerAddress` allows anyone to cause issues to current holders as well as upcoming onesLogic 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
- 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
- Karak: A `DoS` on snapshots due to a rounding error in calculationsInteger overflow/underflow$0
- Karak: Slashing `NativeVault` will lead to locked ETH for the usersLogic error$0
- Phi: `PhiFactory:claim` potentially causing loss of funds if `mintFee` changed beforehandLogic error$0
- Reserve: Broken assumptions can lead to the inability to seize RSRFront-running / MEV$0
- Reserve: The time available for a canceled withdrawal should not impact future unstaking processesLogic error$0
- Reserve: The default Governor Anastasius is unable to call `resetStakes`Governance attack$0
- Reserve: Users can dodge losses due to StRSR era changes with instant operationsFront-running / MEV$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: 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: Both block.prevrandao and block.timestamp are not reliably source of randonnessOracle manipulation$0
- Flayer: Previous `beneficiary` will not be able to claim `beneficiaryFees` if current beneficiary is a poolLogic error$0
- Perennial V2 Update #3: Anyone can cancel other accounts `nonces` and `groups`, leading to griefing their `Intents`.Logic 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
- TraitForge: Forger Entities can forge more times than intendedLogic 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: Keepers can lose compensation feeLogic 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
- Velar Artha PerpDEX: Usage of `tx.origin` to determine the user is prone to attacksAccess control$0
- Velar Artha PerpDEX: First depositor could DoS the poolInteger overflow/underflow$0
- ZetaChain: Zeta Supply Inflation on Deploy Fungible Gas CoinLogic error$0
- ZetaChain: A single malicious observer can exploit the infinite gas meter to grief ZetaChain blocks without proper gas compensationLogic error$0
- ZetaChain: An already executed `InTxTracker` can still be addedLogic 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: JSON-RPC DoS through WebsocketsLogic error$0
- Basin: `WellUpgradeable` can be upgraded by anyoneAccess control$0
- BendDAO: Fee-on-Transfer tokens cause problems in multiple placesLogic error$0
- Midas - Instant Minter/Redeemer: Corruptible Upgradability PatternLogic error$0
- Midas - Instant Minter/Redeemer: Discrepancy between spec and code: Vault admin cannot update `tokensReceiver`.Logic error$0
- Winnables Raffles: Method refundPlayers doesn't update _lockedETH in WinnableTicketManagerLogic error$0
- Winnables Raffles: The setRole() function grants role instead of removingAccess control$0
- 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: Unvalidated memory access in `readMem` and `writeMem` functionsAccess control$0
- Munchables: Invalid validation in `_farmPlots` function allowing a malicious user repeated farming without locked fundsLogic error$0
- Optimism: Missing address check for instructions LH and LHULogic error$0
- Optimism: In some cases, proper `CLOCK_EXTENTSION` time cannot be ensured to generate the initial instruction traceLogic error$0
- Optimism: Multiplication overflow leading to memory corruption and incorrect register write-backInteger overflow/underflow$0
- 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: Adding staking instance as nominee before it is createdGovernance attack$0
- Olas: StakingToken.sol doesn't properly handle FOT, rebasing tokens or those with variable which will lead to accounting issues downstreamLogic error$0
- Olas: Unauthorized claiming of staking incentives for retainerAccess control$0
- Olas: Unstake function reverts because of use of outdated/stale `serviceIds` arrayReentrancy$0
- Olas: `checkpoint` function is not called before staking which can cause loss of rewards for already staked servicesAccess control$0
- Olas: Incorrect handling of last nominee removal in `removeNominee` functionInteger overflow/underflow$0
- Thorchain: ThorChain will be informed wrongly about the unsuccessful ETH transfers due to the incorrect events emissionsReentrancy$0
- Thorchain: A malicious user can steal money out of the vault and other usersFront-running / MEV$0
- Exactly Protocol Update - Staking Contract: Precision Loss in `notifyRewardAmount` Function Causes Unclaimable RewardTokenInteger overflow/underflow$0
- Exactly Protocol Update - Staking Contract: Depositing to another receiver othan than `msg.sender` will lead to stuck funds by increasing `avgStart` without claimingLogic error$0
- Velocimeter: pause or kill gauge can lead to FLOW token stuck in voterLogic error$0
- Velocimeter: If user merges their `veNFT`, they'll lose part of their rewardsLogic 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
- Exactly Protocol Update - Staking Contract: Setting a new market will make depositing to the market impossible when harvesting, DoSing depositsLogic error$0
- Velocimeter: Rewards supplied to a gauge, prior to its first depositor will be permanently lost.Logic error$0
- Velocimeter: Incorrect calculation of TWAP in OptionTokenV4.getTimeWeightedAveragePrice() function.Logic error$0
- Exactly Protocol Update - Staking Contract: Having no deposits in `StakedEXA` will lead to stuck rewards when harvestingLogic error$0
- Velocimeter: `update_period(..)` leads to wrong calculation in weekly emissions breaking accounting for the protocolLogic 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
- Allora: `GenerateForecastScores` acidentally updates inferences scoresLogic error$0
- Allora: math miscalculation artificially deflates scoresLogic 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
- 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: 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: logic bug in this IBC middleware code related to packet handling.Logic 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: Lack of Authentication in OnRecvPacketAccess control$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
- Allora: `GetForecastScoresUntilBlock` can get more score samples than the max allowedLogic error$0
- Allora: topic_rewards/SafeApplyFuncOnAllActiveEpochEndingTopics used the wrong parametersLogic 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
- 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
- Predy: `updateIRMParams` does not call `applyInterestForToken` before updating `irmParams` which leads to incorrect calculation of interest rate for subsequent trades.Logic error$0
- Krystal DeFi: `_deductFees()` is incompatible with tokens that revert on zero value transfersLogic 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: Users can deny the vault from claiming reward tokensLogic error$0
- Notional Leveraged Vaults: Pendle PT and Vault Incentives: `rescueTokens` feature is brokenLogic error$0
- Palmera: Unauthorized Access Control Due to Retained Root Role When Root Safe Exits and Joins New OrgAccess control$0
- Palmera: Unauthorized Role Modification Vulnerability in setRole FunctionAccess control$0
- Palmera: Malicious users can front-run host users safe management actions and add those safes as root for wrong orgFront-running / MEV$0
- Palmera: Potential Protocol insolvency in `removeWholeTree` and `disconnectSafe`Logic error$0
- Palmera: Safe owner/s can prevent being removed from organization by indefinitely increasing their child array Logic error$0
- BakerFi: Protocol receives less harvest feesLogic 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: Incorrect validation during checking liquidity spreadLogic error$0
- BakerFi: `deposit()` `afterDeposit` calculation formula is incorrectLogic error$0
- Palmera: setRole` Function Incorrectly Assigns `_safe.lead` without Validating `enabled` ParameterAccess control$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
- Palmera: isSafeLead` Function Lacks Role Authorization Check, Leading to Unauthorized AccessAccess control$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: execute_claim() possible loss of accuracy or even inability to retrieve fundsInteger overflow/underflow$0
- Andromeda – Validator Staking ADO and Vesting ADO: Permission checks will unnecessarily consume Limited usesLogic 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: 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
- Intuition: Missing events for functions that change critical parameters in `EthMultiVault.sol`Access control$0
- Munchables: User's schnibbles rewards are not harvested in the `setLockDuration` functionLogic error$0
- Elfi: The implementation of `payExecutionFee()` didn't take `EIP-150` into consideration. Keepers can steal additional execution fee from users.Logic error$0
- Elfi: Anyone can change the balance of an account to drain the entire portfolio vaultLogic error$0
- Elfi: `isHoldAmountAllowed` and `isSubAmountAllowed` wrong subtraction will result in DoSInteger overflow/underflow$0
- Elfi: Uninitialized cache.redeemFee cause 0 redeem feeLogic 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: Call of ````revokeAllRole()```` would fail silentlyLogic error$0
- Elfi: The keeper will suffer continuing losses due to miss compensation for L1 rollup feesLogic error$0
- Arbitrum Foundation: `BOLDUpgradeAction.sol` will fail to upgrade contracts due to error in the `perform` functionLogic error$0
- Arbitrum Foundation: Adversary can make honest parties unable to retrieve their assertion stakes if the required amount is decreasedLogic error$0
- DYAD: Attacker can frontrun user's withdrawals to make them revert without costsFlash loan attack$0
- Arbitrum Foundation: Edge from dishonest challenge edge tree can inherit timer from honest tree allowing confirmation of incorrect assertionFront-running / MEV$0
- Inverter Network: FM_Rebasing_v1` is vounerable to just in time liquidityLogic 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_Staking_v1` can be used for pyramid scheme, because it is using current stakers funds to reward othersLogic error$0
- Renzo: DOS of `completeQueuedWithdrawal` when ERC20 buffer is filledLogic error$0
- Renzo: ETH withdrawals from EigenLayer always fail due to `OperatorDelegator`'s nonReentrant `receive()`Reentrancy$0
- Inverter Network: LM_PC_Staking_v1.sol - allocated rewards can never be fully distributed, leftovers cannot be rescuedLogic error$0
- Renzo: Withdrawals can be locked forever if recipient is a contractLogic 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: 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: `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: 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: 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
- 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: Adding liquidity can be `DoS`ed due to calculation mismatchesLogic error$0
- Midas: Malicious users can bypass the blacklist.Logic error$0
- zkSync: Freezed Chain will never be unfreeze since `StateTransitionManager::unfreezeChain` is calling `freezeDiamond` instead of `unfreezeDiamond`Logic 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
- 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: 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: 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
- Kintsu: Dos in send_batch_unlock_requests function due to invalid range for agent's boned AZEROLogic error$0
- Tapioca DAO: Funds can be stolen through remote transfer functionalityAccess control$0
- Tapioca DAO: Gov (`twTAP`) and Tapioca Option can be monopolized by an attackerGovernance attack$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: `twAML` weights can be griefed by burning tokensGovernance attack$0
- Tapioca DAO: `MagnetarMintXChainModule` will not work as msg type is not allowedLogic error$0
- Tapioca DAO: Max magnitude lock check will lead to a DoS and possible monopolization of `gov/Option` on `twTAP`/`TapiocaOptionBroker`Governance attack$0
- Metrom: Campaign owners can bypass protocol fees causing loss to the protocolLogic error$0
- Metrom: Gas griefing vulnerability in `createCampaigns` functionLogic error$0
- Gamma - Locked Staking Contract: `earlyExitById()` and `exitLateById()` calls near the end of `lockPeriod` are vulnerable to attacks.Front-running / MEV$0
- Napier Finance - LST/LRT Integrations: `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
- 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: Almost all rarity rank combinations cannot be, and are not uniformly, generatedLogic 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: 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: Minter / Staker / Spender roles can never be revokedLogic error$0
- Convergence Convex Integration: Users will not be able to claim their their CVX rewards under certain conditionsLogic 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
- Abracadabra Money: Staking contract is not able to support native USDB/WETHLogic error$0
- Abracadabra Money: Miscalculation in addLiquidity of Router results in unauthorized spending of tokensAccess control$0
- Abracadabra Money: Loss of assumed functionality of the Onboarding contract in a highly-sensitive areaAccess control$0
- Abracadabra Money: `LockingMultiRewards` contract on Blast does not configure gas yield nor token yield mode.Access control$0
- Abracadabra Money: User can grief bootstrap process by sending the cap amount of unlocked tokens to it.Access control$0
- Abracadabra Money: Permanent loss of yield for stakers in reward pools due to precision loss.Integer overflow/underflow$0
- Abracadabra Money: Tokens yeild can not be set to claimable.Logic error$0
- Acala Network: `Unbond_instant` removes incorrect amount of sharesLogic error$0
- Convergence Convex Integration: User looses StakeDao rewards, if he misses to call `claimCvgCvxRewards` for cycleLogic error$0
- Coinbase: Balance check during `MagicSpend` validation cannot ensure that `MagicSpend` has enough balance to cover the requested fundLogic 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
- 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: First block proposer check in the `LibProposing._isProposerPermitted` function is errorneousAccess control$0
- Taiko: LibProposing:proposeBlock allows blocks with a zero parentMetaHash to be proposed after the genesis block and avoid parent block verificationLogic error$0
- Taiko: The top tier prover can not re-proveGovernance attack$0
- Taiko: There is no slippage check for the eth deposits processing in the `LibDepositing.processDeposits`Logic error$0
- TITLES Publishing Protocol: Malicious users can block creators from acknowledging or deacknowledging an edgeAccess control$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: Taiko L1 - Proposer can maliciously cause loss of funds by forcing someone else to pay prover's feeGovernance attack$0
- Taiko: Signatures can be replayed in `withdraw()` to withdraw more tokens than the user originally intended.Signature replay$0
- Taiko: The decision to return the liveness bond depends solely on the last guardianLogic error$0
- Canto: `GaugeController::remove_gauge` will always revert whenever the gauge it's being called or has any weight attached to itInteger overflow/underflow$0
- Canto: When the `unlockOverride` flag is true, users can "freely" vote for gauge weights.Access control$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: 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: DAO unable to withdraw their funds due to Convex admin actionLogic error$0
- Zivoe: ZivoeYDL::distributeYield yield distribution is flash-loan manipulatableFlash loan attack$0
- Ondo Finance: The `BURNER` cannot burn tokens from accounts not KYC verified due to the check in `_beforeTokenTransfer`.Logic error$0
- Ondo Finance: Users can lose access to funds due to minimum withdrawal limitsLogic error$0
- Ondo Finance: Inadequate handling of `BUIDL` redemption limit in `OUSG` instant managerLogic error$0
- Ondo Finance: Integration issue in `ousgInstantManager` with `BUIDL` if `minUSTokens` is set by blackrockLogic error$0
- Amphora Protocol: `Vault.claimRewards` can break if Convex changes the operatorLogic error$0
- Amphora Protocol: Reentrancy issue with the `withdraw` method of USDC. All tokens could be drained.Reentrancy$0
- Amphora Protocol: Reorg attack on user's Vault deployment and deposit may lead to theft of fundsFront-running / MEV$0
- Amphora Protocol: Rounding error in `WUSDA` can result in loss of user funds, especially when manipulated by an attackerFlash loan attack$0
- Salty.IO: The user who withdraws liquidity from a particular pool is able to claim more rewards than they should by carefully selecting a `decreaseShareAmount` value such that the `virtualRewardsToRemove` is rounded down to zeroInteger overflow/underflow$0
- Salty.IO: StakingRewards pools are not given their promised share of rewards due to incorrect calculationGovernance attack$0
- Salty.IO: Development Team might receive less SALT because there is no access control on `VestingWallet#release()`Access control$0
- Gitcoin Passport: `userTotalStaked` invariant will be broken due to vulnerable implementations in `release()`Logic error$0
- Salty.IO: Creation of token whitelisting proposals can be DOS'dReentrancy$0
- Salty.IO: First depositor can break staking-rewards accountingLogic error$0
- Salty.IO: SALT staker can get extra voting power by simply unstaking their xSALTGovernance attack$0
- Salty.IO: No proposal time limit traps sponsors of unpopular proposalsReentrancy$0
- Salty.IO: Some rewards from POL will not be send to team wallet nor burnedGovernance attack$0
- Salty.IO: Persistent Contract Call revert prevents finalizing a ballotGovernance attack$0
- Salty.IO: Ballots not yet past their deadline are incorrectly looped too by tokenWhitelistingBallotWithTheMostVotes()Governance attack$0
- Salty.IO: Caller of Upkeep may skip step 11 to save gasGovernance attack$0
- Salty.IO: changeWallets() can be confirmed immediately after proposalWallets() by manipulating activeTimelock beforehandGovernance attack$0
- Salty.IO: Impossible to change managed wallets with `proposeWallets` after first rejectionGovernance attack$0
- Phala Network: Limited availability of `balance_of(...)` methodLogic 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
- Perennial V2 Update #2: _loadContext() uses the wrong pendingGlobal.Logic error$0
- Spectra: PrincipalToken is not ERC-5095 compliantLogic error$0
- PoolTogether: `maxDeposit()` uses `yieldVault.maxDeposit()` but `_depositAndMint()` uses `yieldVault.mint()`Integer overflow/underflow$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: The winner can steal claimer fees, and force him to pay for the gasReentrancy$0
- Optimism Fault Proofs: Loss of bond amounts on re-org attacksLogic 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
- 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: [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
- Axis Finance: Bidder's payout claim could fail due to validation checks in LinearVestingLogic error$0
- Axis Finance: Unsold tokens from a FPAM auction, will be stuck in the protocol, after the auction concludesLogic error$0
- Axis Finance: Downcasting to uint96 can cause assets to be lost for some tokensInteger overflow/underflow$0
- Axis Finance: Overflow in curate() function, results in permanently stuck fundsInteger overflow/underflow$0
- Axis Finance: User's can be grieved by not submitting the private keyLogic error$0
- Axis Finance: Unsafe casting within _purchase function can result in overflowInteger overflow/underflow$0
- Axis Finance: Incorrect `prefundingRefund` calculation will disallow claimingLogic error$0
- Thruster: Tickets can be entered after prizes for current round have partially been distributedLogic error$0
- Thruster: Incorrect gas claiming logic in `ThrusterPoolDeployer`Logic error$0
- Thruster: Dynamic modification of `maxPrizeCount` affects prize claimsLogic error$0
- Thruster: `claimPrizesForRound` transfers the entire amount deposited for a prize regardless of the number of winnersLogic error$0
- Mento: User Can Vote Even When They Have 0 Locked Mento (Edge Case)Governance attack$0
- Zap Protocol: Vesting contract cannot work with ETH, although it's supposed to.Logic error$0
- Amphor: Exchange rate is calculated incorrectly when the vault is closed, potentially leading to funds being stolenLogic error$0
- Perpetual: In certain cases, users are unable to settle their orders with the PartialFill trade type.Logic error$0
- Amphor: Claim functions don't validate if the epoch is settledLogic error$0
- Tapioca: Balancer rebalance operation is permanently blocked whenever owner assigns `rebalancer` role to some other addressAccess control$0
- Tapioca: Wrong parameter in remote transfer makes it possible to steal all USDO balance from usersLogic error$0
- Tapioca: Incorrect `tapOft` Amounts Will Be Sent to Desired Chains on Certain ConditionsLogic error$0
- Tapioca: TOFTOptionsReceiverModule's and UsdoOptionReceiverModule's exerciseOptionsReceiver can lose the option payment providedLogic error$0
- Tapioca: mTOFTReceiver MSG_XCHAIN_LEND_XCHAIN_LOCK unable to executeGovernance attack$0
- Opus: Attacker can lock every trove withdrawalsLogic error$0
- Opus: `convert_to_yang_helper()` loss precisionLogic 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: The current idea of creating reETH and accepting several different assets in it exposes RIO users to lossesLogic error$0
- Rio Network: Slashing penalty is unfairly paid by a subset of users if a deficit is accumulated.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: Setting the strategy cap to "0" does not update the total shares held or the withdrawal queueLogic error$0
- Rio Network: All operators can have ETH deposits regardless of the cap setted for them leading to miscalculated TVLLogic error$0
- Rio Network: Deposits may be front-run by malicious operator to steal ETHFront-running / MEV$0
- Rio Network: RioLRTIssuer::issueLRT reverts if deposit asset's approve method doesn't return a boolLogic error$0
- Rio Network: 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: Mint and sales can be dossed due to lack of safeApprove to 0Logic error$0
- Smilee Finance: FeeManager `receiveFee` and `trackVaultFee` functions allow anyone to call it with user-provided dvp/vault address and add any arbitrary feeAmount to any address, breaking fees accounting and temporarily bricking DVP smart contractAccess control$0
- Smilee Finance: Vault Inflation AttackLogic error$0
- zkSync: Reduction gate in binop operation is unsafeInteger overflow/underflow$0
- zkSync: Attacker can manipulate the sorted queue in log sorter to emit reverted logs and eventsLogic error$0
- zkSync: Version hash is not correctly enforced in code unpackerLogic error$0
- zkSync: Nonce ordering of EOA can be updated to "arbitrary" through an L1 txLogic error$0
- zkSync: Synchronization Issue Between L1 and L2 UpgradesReentrancy$0
- zkSync: EIP-155 is not enforced, allowing attackers/malicious operators to profit from replaying transactionsLogic error$0
- zkSync: Loss of funds for the sender when ``L1->L2`` TX fails in the bootloader on L2Reentrancy$0
- zkSync: TransactionValidator checks intrinsic costs against wrong valueLogic error$0
- zkSync: Operator can steal all gas provided by ANY user for `L1→L2` transactionsInteger overflow/underflow$0
- zkSync: Nonce Behavior Discrepancy Between zkSync Era and EIP-161Logic error$0
- zkSync: Attacker can forge arbitrary read value from memory in case `skip_if_legitimate_fat_ptr`Logic error$0
- zkSync: 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: `Mul/div` relation should not be enforced when divisor is zeroLogic error$0
- zkSync: Governance logic may enter a deadlockAccess control$0
- zkSync: Wrong encoding of the data in the `sendCompressedBytecode` functionAccess control$0
- zkSync: Discrepancy in Default Account BehaviorLogic error$0
- zkSync: Unit difference between transaction encoding and bootloader memory constantLogic error$0
- zkSync: Discrepancy in ECRECOVER Precompile when Using `Delegatecall`Signature replay$0
- Fenix Finance: Single-step process for critical ownership transfer is very riskyLogic error$0
- Napier: YT holder are unable to claim their interestLogic 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: Permissioned rebalancing functions leading to loss of assetsAccess control$0
- Napier: Unable to deposit to Tranche/Adaptor under certain conditionsLogic error$0
- Napier: All yield could be drained if users set any ````> 0```` allowance to othersLogic error$0
- Napier: Anyone can convert someone's unclaimed yield to PT + YTLogic 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
- Ethereum Credit Guild: Anyone can prolong the time for the rewards to get distributedGovernance attack$0
- Ethereum Credit Guild: Anyone can steal all distributed rewardsFront-running / MEV$0
- Ethereum Credit Guild: Inability to withdraw funds for certain users due to `whenNotPaused` modifier in `RateLimitedMinter`Logic error$0
- INIT Capital: Order's creator can update `tokenOut` to arbitrary tokenFront-running / MEV$0
- Ethereum Credit Guild: The `userGaugeProfitIndex` is not set correctly, allowing an attacker to receive rewards without waitingGovernance attack$0
- Paladin: Unbounded proxy length in LootVoteController can cause function to become unusableLogic error$0
- Paladin: Division by Zero in `_createLoot` when Distributor change `lootCreator`, prevent Users from creating previous LootLogic 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
- Paladin: Changes of `questRewardsPerPeriod` didn't reflected on LootCreator's `totalQuestPeriodRewards`Reentrancy$0
- Collective: Incorrect amounts of ETH are transferred to the DAO treasury in `ERC20TokenEmitter::buyToken()`, causing a value leak in every transactionReentrancy$0
- Collective: `encodedData` argument of `hashStruct` is not calculated perfectly for EIP712 singed messages in `CultureIndex.sol`Signature replay$0
- Collective: ERC20TokenEmitter will not work after a certain period of timeInteger overflow/underflow$0
- Collective: Since buyToken function has no slippage checking, users can get less tokens than expected when they buy tokens directlyFront-running / MEV$0
- Collective: `ERC20TokenEmitter::buyToken` function mints more tokens to users than it should doReentrancy$0
- Collective: Once EntropyRateBps is set too high, can lead to denial-of-service (DoS) due to an invalid ETH amountLogic error$0
- Paladin: EIP712 chainId is hardcoded which can cause replay attacks in case of hardforkSignature replay$0
- Paladin: Possible to grief and prevent all users from claiming via front-running `multiClaim()` callsFront-running / MEV$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
- Asymmetry Finance: VotiumStrategy withdrawal queue fails to consider available unlocked tokens causing different issues in the withdraw processLogic error$0
- Olas: CM can `delegatecall` to any address and bypass all restrictionsAccess control$0
- Asymmetry Finance: `price()` in `AfEth.sol` doesn't take afEth held for pending withdrawals into accountLogic error$0
- Asymmetry Finance: AfEth deposits could use price data from an invalid Chainlink responseOracle manipulation$0
- Olas: Withdrawals can be frozen by creating null depositsInteger overflow/underflow$0
- Olas: Bonds created in year cross epoch's can lead to lost payoutsGovernance attack$0
- Covalent: Validator cannot set new address if more than 300 unstakes in it's arrayLogic error$0
- Covalent: New staking between reward epochs will dilute rewards for existing stakers. Anyone can then front-run `OperationalStaking.rewardValidators()` to steal rewardsFront-running / MEV$0
- Covalent: Frontrunning validator freeze to withdraw tokensFront-running / MEV$0
- Covalent: OperationalStaking may not possess enough CQT for the last withdrawalLogic error$0
- Covalent: OperationalStaking::_unstake Delegators can bypass 28 days unstaking cooldown when enough rewards have accumulatedLogic error$0
- Covalent: `validatorMaxStake` can be bypassed by using `setValidatorAddress()`Access control$0
- Olympus On-Chain Governance: High risk checks can be bypassed with extra `calldata` paddingGovernance attack$0
- Olympus On-Chain Governance: Nobody can cast for any proposalGovernance attack$0
- Olympus On-Chain Governance: Post-proposal vote quorum/threshold checks use a stale total supply valueLogic error$0
- LooksRare YOLO: Users can deposit "0" ether to any roundLogic error$0
- LooksRare YOLO: Rounds can not be immediately drawn after fulfillRandomWords due to VRF contracts reentrancy guardReentrancy$0
- LooksRare YOLO: The number of deposits in a round can be larger than MAXIMUM_NUMBER_OF_DEPOSITS_PER_ROUNDLogic error$0
- 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
- JOJO Exchange Update: FundingRateArbitrage contract can be drained due to rounding errorInteger overflow/underflow$0
- Notional Update #5: Residual ETH not sent back when `batchBalanceAndTradeAction` executedLogic error$0
- INIT Capital: Malicious user can steal native tokens of MoneyMarketHook callerReentrancy$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
- PartyDAO: `ETHCrowdfundBase.sol#_processContribution` - Possible DoS on finalization of crowdfund under certain conditionsReentrancy$0
- PartyDAO: Some arbitrary proposal calls will fail because `executeProposal()` in `ProposalExecutionEngine` is not payableGovernance attack$0
- PartyDAO: `ETHCrowdfundBase.sol#processContribution` - Impossible to finalize crowdfund because of `minContribution` checkGovernance attack$0
- NextGen: `MinterContract::payArtist` can result in double the intended payoutLogic error$0
- Truflation: TrufVesting.cancelVesting calculates end of vesting incorrectlyLogic error$0
- NextGen: Multiple mints can brick any form of `salesOption` 3 mintingsInteger overflow/underflow$0
- NextGen: Permanent DoS due to non-shrinking array usage in an unbounded loopLogic error$0
- NextGen: `getPrice` `salesOption` 2 can round down to the lower barrier, skipping the last time periodInteger overflow/underflow$0
- Truflation: Users can fully drain the `TrufVesting` contractLogic error$0
- NextGen: Unchecked return value of low-level `call()/delegatecall()`Logic error$0
- Truflation: Ended locks can be extendedLogic error$0
- NextGen: Artist signatures can be forged to impersonate the artist behind a collectionAccess control$0
- NextGen: User funds sent in excess are not refundedLogic error$0
- Truflation: `cancelVesting` will potentially not give users unclaimed, vested funds, even if giveUnclaimed = trueLogic error$0
- Open Dollar: Due to extremely short `votingDelay` and `votingPeriod`, governance is practically impossibleGovernance attack$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: Approved address can approve other addresses for an owner's safeLogic error$0
- Open Dollar: Incorrect calculations for Surplus Auction creation cause massive surplus imbalancesInteger overflow/underflow$0
- Open Dollar: Missing debt check lets users start a debt auction of non-existent debtLogic error$0
- Wildcat Protocol: Return values of `transfer()`/`transferFrom()` not checked and unsafe usageLogic error$0
- Maia DAO: The governance will fail to add an ecosystem token if someone creates a hToken that uses that ecosystem tokenGovernance attack$0
- Tapioca DAO: CompoundStrategy attempts to transfer out a greater amount of ETH than will actually be withdrawn, leading to DoSReentrancy$0
- Tapioca DAO: triggerSendFrom() will send all the ETH in the destination chain where sendFrom() is called to the refundAddress in the LzCallParams argumentGovernance attack$0
- Tapioca DAO: Attacker can specify any `receiver` in `USD0.flashLoan()` to drain `receiver` balanceFlash loan attack$0
- Tapioca DAO: Not enough TAP tokens to exercise if a user participates and exercises in the same epochGovernance attack$0
- Tapioca DAO: Attacker can block LayerZero channel due to missing check of minimum gas passedBridge exploit$0
- Tapioca DAO: twTAP.claimAndSendRewards() will claim the wrong amount for each reward token due to the use of wrong indexGovernance attack$0
- Tapioca DAO: `BalancerStrategy.sol`: `_withdraw` withdraws insufficient tokensGovernance attack$0
- Tapioca DAO: `exitPosition` in `TapiocaOptionBroker` may incorrectly inflate position weightsGovernance attack$0
- Tapioca DAO: TOFT `triggerSendFrom` can be used to steal all the balanceBridge exploit$0
- Tapioca DAO: Accounted balance of GlpStrategy does not match withdrawable balance, allowing for attackers to steal unclaimed rewardsGovernance attack$0
- Centrifuge: Investors claiming their `maxDeposit` by using the `LiquidityPool.deposit()` will cause other users to be unable to claim their `maxDeposit`/`maxMint`Integer overflow/underflow$0
- Centrifuge: DelayedAdmin Cannot `PauseAdmin.removePauser`Governance attack$0
- Centrifuge: Cached `DOMAIN_SEPARATOR` is incorrect for tranche tokens potentially breaking permit integrationsLogic error$0
- Centrifuge: You can deposit really small amount for other users to DoS themAccess control$0
- Centrifuge: The Restriction Manager does not completely implement ERC1404 which leads to accounts that are supposed to be restricted actually having access to do with their tokens as they see fitAccess control$0
- Maia DAO Ecosystem: Maia Governance token balance dilution in `vMaia` vault is breaking the conversion rate mechanismInteger overflow/underflow$0
- Maia DAO Ecosystem: `updatePeriod()` has less minting of `HERMES`Governance attack$0
- Maia DAO Ecosystem: Removing more gauge weight than it should be while transferring `ERC20Gauges` tokenReentrancy$0
- Maia DAO Ecosystem: `ERC4626PartnerManager.checkTransfer` does not check `amount` correctly, as it applies `bHermesRate` to `balanceOf[from]`, but not `amount`.Governance attack$0
- Maia DAO Ecosystem: Although `ERC20Boost.decrementGaugesBoostIndexed` function would require the user to remove all of their boosts from a deprecated gauge at once, such a user can instead call `ERC20Boost.decrementGaugeBoost` function multiple times to utiliz…Governance attack$0
- Maia DAO Ecosystem: `migratePartnerVault()` in the first vault does not work properlyAccess control$0
- Maia DAO Ecosystem: `vMaia` is ERC-4626 compliant, but the `maxWithdraw` & `maxRedeem` functions are not fully up to EIP-4626's specificationGovernance attack$0
- Maia DAO Ecosystem: Unstaking `vMAIA` tokens on the first Tuesday of the month can be offsetGovernance attack$0
- Maia DAO Ecosystem: `_decrementWeightUntilFree()` has a possible infinite loopReentrancy$0
- Maia DAO Ecosystem: `ERC4626PartnerManager.sol` mints extra `partnerGovernance` tokens to itself, resulting in over supply of governance tokenAccess control$0
- Maia DAO Ecosystem: Re-adding a deprecated gauge in a new epoch before calling `updatePeriod()`/`queueRewardsForCycle()` will leave some gauges without rewardsGovernance attack$0
- Maia DAO Ecosystem: If a STRATEGY TOKEN is "Toggled off" STRATEGIES will still be able to withdraw, but returning of tokens with `replenishReserves` will be disabled.Access control$0
- Maia DAO Ecosystem: Governance relies on the current `totalSupply` of `bHermes` when calculating `proposalThresholdAmount` and `quorumVotesAmount`Governance attack$0
- Maia DAO Ecosystem: `BaseV2Minter` DAO reward shares are calculated wrongGovernance attack$0
- Maia DAO Ecosystem: A malicious user can front-run Gauges's call `addBribeFlywheel` to steal bribe rewardsFlash loan attack$0
- Maia DAO Ecosystem: `redeem()` in `beforeRedeem` is using the wrong owner parameterReentrancy$0
- Maia DAO Ecosystem: Branch Strategies lose yield due to wrong implementation of time limit in `BranchPort.sol`Oracle manipulation$0
- Maia DAO Ecosystem: `vMaia` Lacks of override in `forfeitBoost`Integer overflow/underflow$0
- Maia DAO Ecosystem: Claiming outstanding utility tokens from `vMaia` vault DoS on `pbHermes<>bHermes` conversion rate `>` 1Governance attack$0
- Maia DAO Ecosystem: In `ERC20Boost.sol`, a user can be `attached` to a gauge and have no boost balance.Governance attack$0
- Maia DAO Ecosystem: Wrong consideration of `blockformation` period causes incorrect `votingPeriod` and `votingDelay` calculationsGovernance attack$0
- Lybra Finance: Rewards for initial period can be lost in all of the synthetix derivative contractsAccess control$0
- Lybra Finance: Governance wrongly calculates `_quorumReached()`Governance attack$0
- Lybra Finance: There is no mechanism that prevents from minting less than `esLBR` maximum supply in `StakingRewardsV2`Logic error$0
- Lybra Finance: Allowing `refreshReward()` to fail during minting or buring esLBR could result in gain or loss previously earned rewardGovernance attack$0
- Lybra Finance: Wrong `proposalThreshold` amount in `LybraGovernance.sol`Governance attack$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: If `ProtocolRewardsPool` is insufficient in EUSD, users will not be able to claim any rewardsLogic error$0
- Asymmetry Finance: sFrxEth may revert on redeeming non-zero amountLogic error$0
- Asymmetry Finance: Users can fail to unstake and lose their deserved ETH because malfunctioning or untrusted derivative cannot be removedAccess control$0
- Asymmetry Finance: Stuck ether when use function `stake` with empty `derivatives`(`derivativeCount` = 0)Logic error$0
- Asymmetry Finance: Residual ETH unreachable and unutilized in SafEth.solAccess control$0
- Asymmetry Finance: An attacker can manipulate the preDepositvePrice to steal from other usersInteger overflow/underflow$0
- Ethos Reserve: In `ReaperVaultV2`, we should update `lockedProfit` and `lastReport` before changing `lockedProfitDegradation`Front-running / MEV$0
- Biconomy: `SmartAccount.sol` is intended to be upgradable but inherits from contracts that contain storage and no gapsLogic error$0
- Biconomy: Non-compliance with EIP-4337Logic error$0
- Biconomy: `FeeRefund.tokenGasPriceFactor` is not included in signed transaction data allowing the submitter to steal fundsReentrancy$0
- Biconomy: Attacker can gain control of counterfactual walletFront-running / MEV$0
- Biconomy: Replay attack (EIP712 signed transaction)Signature replay$0
- Biconomy: DoS of user operations and loss of user transaction fee due to insufficient gas value submission by malicious bundlerLogic error$0
- Biconomy: Arbitrary transactions possible due to insufficient signature validationLogic error$0
- Biconomy: Transaction can fail due to batchId collisionLogic error$0
- Biconomy: Paymaster ETH can be drained with malicious senderLogic error$0
- Biconomy: Methods used by EntryPoint has `onlyOwner` modifierAccess control$0
- Biconomy: Theft of funds under relaying the transactionFront-running / MEV$0
- Biconomy: Destruction of the `SmartAccount` implementationSignature replay$0
- Biconomy: Doesn't Follow ERC1271 StandardLogic error$0
- Biconomy: Griefing attacks on `handleOps` and `multiSend` logicFront-running / MEV$0