Payouts
1st Places
2nd Places
3rd Places
All
Sherlock
Code4rena
Cantina
Immunefi
Dec '24
medium
Nov '24
Oct '24
Sep '24
Aug '24
Jul '24
Jun '24
Findings not publicly available for private contests.
May '24
medium
medium
Findings not publicly available for private contests.
medium
Apr '24
medium
Not handling the failure of cross chain messaging
medium
Lack of slippage and deadline during withdraw and deposit
medium
L1::xRenzoBridge and L2::xRenzoBridge uses the block.timestamp as dependency, which can cause issue.
medium
Withdrawals and Claims are meant to be pausable, but it is not possible in practice
high
`BalancerConnector::_getPositionTVL` is calculated incorrectly
high
`executeWithdraw` may be blocked if any of the users are blacklisted from the `baseToken`
high
It is possible to open insolvent position is Silo connector, due to missing check in borrow function
medium
The `TVLHelper.sol#getTVL` function is DOSed by the `under collateralized connector`, and as a result, many parts of the protocol may be DOS.
medium
In the BalancerConnector, unclaimed rewards are not included in the calculation of the connectors TVL
medium
Balancer flashloan contract can be DOSed completely by sending 1 wei to it
medium
`depositQueue.queue` in `AccountingManager` can be flooded causing a DoS
medium
No function to claim the reward in `PancakeswapConnector`.
medium
`PendlingConnector::depositIntoMarket()` `PendlingConnector::burnLP()` and are missing slippage control parameters.
Mar '24
high
medium
medium
medium
high
Taiko L1 - Proposer can maliciously cause loss of funds by forcing someone else to pay prover's fee
high
Signatures can be replayed in `withdraw()` to withdraw more tokens than the user originally intended.
medium
retryMessage unable to handle edge cases.
medium
There is no slippage check for the eth deposits processing in the `LibDepositing.processDeposits`
medium
Malicious caller of `processMessage()` can pocket the fee while forcing `excessivelySafeCall()` to fail
Feb '24
medium
medium
medium
high
lack of market helper address validation allows theft of fund
high
Fully exercise option to receive fully eligible amount via TOFTOptionsReceiverModule may result in loss of fund
medium
Owner check logical should use && instead of || when rebalancing
medium
Share computing for reward distribution is incorrect
low
high
A locked fighter can be transferred; leads to game server unable to commit transactions, and unstoppable fighters
high
Non-transferable `GameItems` can be transferred with `GameItems::safeBatchTransferFrom(...)`
medium
Constraints of dailyAllowanceReplenishTime and allowanceRemaining during mint() can be bypassed by using alias accounts & safeTransferFrom()
medium
DoS in `MergingPool::claimRewards` function and potential DoS in `RankedBattle::claimNRN` function if called after a significant amount of rounds passed.
Jan '24
high
high
Nov '23
high
high
medium
medium
medium
Oct '23
Sep '23
Aug '23
high
The settle feature will be broken if attacker arbitrarily transfer collateral tokens to the PerpetualAtlanticVaultLP
high
The peg stability module can be compromised by forcing lowerDepeg to revert.
medium
Missing slippage parameter on Uniswap `addLiquidity()` function
medium
`sync` function in `RdpxV2Core.sol` should be called in multiple scenarios to account for the balance changes that occurs
medium
No slippage protection for bonders
Jul '23
high
Mav oracle LP price can be manipulated
high
Malicious user can claim the reward for contract to make the user lose convex reward
medium
Balancer reentrancy check waste too much gas and can revert transaction in out of gas error
medium
Malicious / delayed tellor price feed data can be consumed before it get disputed and removed
medium
Swell eth oracle can be maipulated by third party easily
medium
curve admin can drain pool via reentrancy (equal to execute emergency withdraw and rug tokenmak fund by third party)
high
TOFT and USDO Modules Can Be Selfdestructed
high
`LidoEthStrategy._currentBalance` is subject to price manipulation, allows overborrowing and liquidations
high
Ability to steal user funds and increase collateral share infinitely in BigBang and Singularity
high
[HB10] `AaveStrategy.sol`: Changing swapper breaks the contract
medium
BigBang and Singularity should not pause repay() and liquidate()
medium
In case of Loss to the Yearn Vault, the Contract will stop working until the loss is repaid
medium
Oracle is susceptible to manipulation if deployed on Optimism
medium
all deposit and withdraw function in Convex and Curve nativeLP Strategy, apply slippage on internal pricing; which call real-time on chain price from Curve directly and subject to MEV
medium
BigBang/Singularity::sellCollateral - Surplus of collateral with regards to repay amount is never returned to user
medium
AaveStragety#withdraw and emergecyWithdraw can revert if the supply cap is reached or isFrozen flag is on when compounding
medium
Loss of COMP reward in CompoundStragety.sol
medium
Compounding mechanism is broken/flawed in ConvexTricryptoStrategy
medium
mTapiocaOFT can't be rebalanced because the Balancer in tapiocaz-audit calls swapETH() or swap() of the RouterETH but does not forward ether for the message fee
medium
`_getDiscountedPaymentAmount` doesn't work for tokens with more than 18 decimals
high
All fund from Teller contract can be drained because a malicious receiver can call reclaim repeatedly
high
All funds can be stolen from FixedStrikeOptionTeller using a token with malicious decimals
medium
Blocklisted address can be used to lock the option token minter's fund
medium
Loss of option token from Teller and reward from OTLM if L2 sequencer goes down
medium
Use A's staked token balance can be used to mint option token as reward for User B if the payout token equals to the stake token
medium
IERC20(token).approve revert if the underlying ERC20 token approve does not return boolean
medium
Division before multiplication result in loss of token reward if the reward update time elapse is small
medium
FixedStrikeOptionTeller: create can be invoked when block.timestamp == expiry but exercise reverts
medium
OTLM: Stakers unable to claim their rewards
Jun '23
May '23
high
Wrong oracle address used for WBTC oracle
high
No slippage control when swapping asset
high
Lack of access for mintRebalancer and burnRebalancer in USSD
high
Poor validation of the price allows negative price or zero price to be used
medium
No redeem function implemented
medium
Poor validation of the chainlink oracle timestamp and round id
high
FootiumEscrow token approval still stays even when Club NFT is sold / transferred
medium
Does not handle the ERC20 transfer and approve return value
medium
Certain ERC20 token does not return bool from approve and transfer and transaction revert
medium
SafeMint in FootiumClub.sol is not EIP 721 complaint
Apr '23
high
User can use malicious token / asset to block withdraw by calling CollateralManager.sol#commitCollateral
high
Borrower can change term after the lender accept bids to rug the lender
medium
Lack of access in CollateralManager.sol#withdraw function
medium
Lack of support for fee-on-transfer
medium
Protocol owner can charge high protocol fee with no upper limit
high
PrivatePool owner can steal all ERC20 and NFT from user via arbitrary execution
medium
Pool tokens can be stolen via `PrivatePool.flashLoan` function from previous owner
medium
The `royaltyRecipient` could not be prepare to receive ether, making the `sell` to fail
medium
Transaction revert if the baseToken does not support 0 value transfer when charging changeFee
medium
`Factory.create`: Predictability of pool address creates multiple issues.
medium
EthRouter can't perform multiple changes
high
Some positions will get liquidated immediately
high
DOS of market operations with malicious offers
high
RubiconMarket checks slippage incorrectly
high
An attacker can steal all tokens of users that use `FeeWrapper`
medium
Use of `block.number` leads to incorrect interest calculations
medium
Incorrect calculations can occur when calling `Position._marketBuy` and `Position._marketSell` functions that do not include maker fee in `_fee`
Mar '23
medium
Division before multiplication truncate minOut and incurs heavy precision loss and result in insufficient slippage protection
medium
No slippage protection on `stake()` in SafEth.sol
medium
DoS due to external call failure
medium
Missing derivative limit and deposit availability checks will revert the whole `stake()` function
medium
Lack of deadline for uniswap AMM
Feb '23
high
A malicious early user/attacker can manipulate the Token's pricePerShare to take an unfair share of future users' deposits
high
Improper token scaling when handling the low precision ERC20 token
medium
Invalid finding Please disard: Smart contract should not accrue fee shares when the feeRecipient address is address(0)
high
Seller can withdrawal in any cycle and can withdraw any amount with the help of flashloan after two cycles passes
high
Buyer can transfer the Goinfinch Pool Position NFT multiple times to different address to buy the premium protection multiple times, result in double counting of the protection amount
high
Unbounded loop can consume all gas and revert transaction in multiple places.
medium
Front-runnable state update for lending pool
high
Refund NFT via DepositManager failed to clean up the nftDeposits array, result in failure when claiming the reward from ClaimManager.sol
high
User can fund the bounty contract with malicious ERC20 token or NFT token to block developer’s claim at very low cost
high
Developer cannot claim the bounty if the token revert in 0 amount transfer after the user get the bounty refund after funding the bounty contract
high
User should not be able to get the refund before the developer claim the bounty and after the bounty is closed
high
User can fund ERC721 as ERC20 to block developer’s bounty withdraw from Bounty contract
high
Unbounded gas consumption When calling BountyCore#getLockedFunds
medium
A user can maliciously take the advantage of the refundDeposit to claim refund for other user
Jan '23
medium
Malicious Users Can Drain The Assets Of Vault. (Due to not being ERC4626 Complaint)
medium
vault.changeAdapter can be misused to drain fees
medium
cool down time period is not properly respected for the `harvest` method
medium
VaultController() Missing call DeploymentController.nominateNewDependencyOwner()
medium
Users can fail to withdraw deposited assets from a vault that uses `YearnAdapter` contract as its adapter because `maxLoss` input for calling corresponding Yearn vault's `withdraw` function cannot be specified
high
Protocol fees can be withdrawn multiple times in `Erc20Quest`
medium
Possible scenario for Signature Replay Attack
medium
Buyer on secondary NFT market can lose fund if they buy a NFT that is already used to claim the reward
medium
DOS risk if enough tokens are minted in Quest.claim can lead, at least, to transaction fee lost
high
The deposit / withdraw / trade transaction lack of expiration timestamp check and slippage control
medium
Flashloan caller can double paying the flashloaned amount
medium
CryptoKitty and CryptoFighter NFT can be paused, which block borrowing / repaying / liquidating action in the ERC721Pool when borrowers still forced to pay the compounding interest
medium
User's staking reward can be lost in RewardsManager.sol
high
Strategist can fail to withdraw asset token from a private vault
high
Improper validations in Clearinghouse. possible to lock collateral NFT in contract.
medium
Adversary can game the liquidation flow by transfering a dust amount of the payment token to ClearingHouse contract to settle the auction if no one buy the auctioned NFT
medium
Lack of support for ERC20 token that is not 18 decimals
medium
CollateralToken should allow to execute token owner's action to approved addresses
medium
Liquidator reward is not taken into account when calculating potential debt
medium
Lack of support for fee-on-transfer token
medium
Certain function can be blocked if the ERC20 token revert in 0 amount transfer after PublicVault#transferWithdrawReserve is called
medium
A user can use the same proof for a commitment more than 1 time
medium
LienToken._payment function increases users debt
high
Rage trade depository redeem can revert in senior vault beforeWithdraw hook when the utilization rate is high
high
15 seconds is too short for TWAP price query when calculating the PNL
high
Lack of input validation when rebalancing occurs, which leads to loss of fund in Perp protocol depository
medium
Vulnerable Openzepplin version is used, which affects GovernorVotesQuorumFraction used in the Governance contract
Dec '22
high
MinipoolManager: node operator can avoid being slashed
high
Inflation of ggAVAX share price by first depositor
high
Hijacking of node operators minipool causes loss of staked funds
medium
Inaccurate estimation of validation rewards from function ExpectedRewardAVA in MiniPoolManager.sol
medium
Division by zero error can block RewardsPool#startRewardCycle if all multisig wallet are disabled.
medium
Rialto may not be able to cancel minipools created by contracts that cannot receive AVAX
medium
Bypass `whenNotPaused` modifier
Findings not publicly available for private contests.
Nov '22
medium
Fallback oracle is using spot price in Uniswap liquidity pool, which is very vulnerable to flashloan price manipulation
medium
Centralization risk: admin can with rug the project by removing asset and price manipulation on oracle.
medium
Rewards are not accounted for properly in NTokenApeStaking contracts, limiting user's collateral.
high
The 'redeem' related functions are likely to be blocked
high
Malicious Users Can Drain The Assets Of Auto Compound Vault
high
Underlying assets stealing in `AutoPxGmx` and `AutoPxGlp` via share price manipulation
medium
SWAP_ROUTER in AutoPxGmx.sol is hardcoded and not compatible on Avalanche
medium
Assets may be lost when calling unprotected `AutoPxGlp::compound` function
medium
Deposit Feature Of The Vault Will Break If Update To A New Platform
high
Reentrancy in LiquidStakingManager.sol#withdrawETHForKnow leads to loss of fund from smart wallet.
medium
Dao admin in LiquidStakingManager.sol can rug the registered node operator by stealing their fund in the smart wallet via arbitrary execution.
medium
Incorrect implementation of the ETHPoolLPFactory.sol#rotateLPTokens let user stakes ETH more than maxStakingAmountPerValidator in StakingFundsVault, and DOS the stake function in LiquidStakingManager
medium
dETH / ETH / LPTokenETH can become depegged due to ETH 2.0 reward slashing.
medium
Address.isContract() is not a reliable way of checking if the input is an EOA
high
A malicious early user/attacker can manipulate the share to take an unfair share of future users' deposits when maturity is not set.
medium
Hacker can call approve function to approve malicious contract to spend token in RollerPeriphery.sol
medium
Math rounding in AutoRoller.sol is not ERC4626-complicant: previewWithdraw should round up.
medium
AutoRoller.sol#roll can revert if lastSettle is zero because solmate ERC4626 deposit revert if previewDeposit returns 0
Oct '22
high
Redeem function for Swivel, Yield, Element, Pendle, APWine, Tempus and Notional protocols and Sense missing unpaused modifier in Redeemer.sol
high
IMPORTANT: User can mint arbitrary amount of principle token by passing invalid parameter in the Lender.sol#mint because Safe.transferFrom(IERC20(principal), msg.sender, address(this), a) does not check IERC20 code size.
high
Lack of access control in LienToken.sol#_deleteLienPosition
high
AstariaRouter.sol#getProtocolFee division by zero, affecting new loan origination from VaultImplementation.sol#commitToLien
high
Lack of access control in PublicVault.sol#transferWithdrawReserve let user call transferWithdrawReserve() multiple times to modify withdrawReserve
medium
An early user can manipulate the price per share and profit from late users' deposits In the vault.
medium
VaultImplementation#_validateCommitment signature commit proof message can be reused / replayed because the lack of nonce check
medium
AssetManager.sol#rebalance can revert if single moneyMarket.withdrawAll revert / AaveV3Adapter.sol#withdrawAll revert if withdrawAmount is 0, and revert rebalancing transaction.
medium
UserManager.sol#debtWriteOff may be not publicly callable after the loan is overdue by overdue blocks + maxOverdueBlocks
medium
More granular control of the pause is needed for each money market because deposit and withdrawal can be guaranteed to revert if the underlying money market is paused or has high utilization rate
medium
Unbounded loop in registerMemeber.sol when register new member can consume all the gas and revert transaction.
medium
AaveV3Adapter.sol withdraw function call return amount is not properly handled, which affecting unstaking and rebalance operation
medium
Unsafe downcasting arithmetic operation in UserManager related contract and in UToken.sol
high
A malicious early user/attacker can manipulate the vault share to take an unfair share of future users' deposits
medium
totalSupply() can be maliciously inflated and manipulated, User may lose their token and not get share minted in Vault.sol#deposit when convertToShares return 0
medium
Admin cannot pause deposit when the deposit function is guaranteed to revert
medium
Duplicated plugin contract address is allowed, leading to not-removeable plugin and affect token withdraw and deposit
medium
_withdrawFromPlugin(pluginAddr, IPlugin(pluginAddr).balance()) can fail if plugin has no balance because AAVE does not allow withdraw 0 token balance, result in not-removeable plugin
Sep '22
high
_previewWithdraw function in AuctionInternal.sol has unbounded gas consumption loop and can block user from withdraw
medium
Lack of price freshness check in PricerInternal.sol#_latestAnswer64x64() allows a stale price or zero price to be used
medium
processAuction() in VaultAdmin.sol can be called multiple times by keeper if the auction is canceled.
medium
Centralization risk: admin have privileges: admin can set address to mint any amount of frxETH, can set any address as validator, and change important state in frxETHMinter and withdraw fund from frcETHMinter
medium
frxETH can be depegged due to ETH staking balance slashing
medium
removeValidator() and removeMinter() may fail due to exceeding gas limit
medium
stakingContext.auraBooster.deposit boolean return value not handled in Boosted3TokenPoolUtils.sol
medium
stakingContext.auraRewardPool.withdrawAndUnwrap boolean return value not handled in Boosted3TokenPoolUtils.sol and TwoTokenPoolUtils.sol
medium
getGetAmplificationParameter() precision is not used, which result in accounting issue in MetaStable2TokenAuraHelper.sol and in Boosted3TokenAuraHelper.sol
Aug '22
Jul '22
Jun '22