Payouts
1st Places
2nd Places
3rd Places
All
Sherlock
Code4rena
Nov '24
high
Farms can be created to start in past epochs
high
User cannot claim rewards or close_position, due to vulnerable division by zero handling
high
Block gas limit can be hit due to loop depth
high
Logical error in `validate_fees_are_paid` can cause a DoS or allow users to bypass fees if `denom_creation_fee` includes multiple coins including `pool_creation_fee` and the user attempts to pay all fees using only `pool_creation_fee`
medium
In edge cases, create_pool can either be reverted or allow user underpay fees.
medium
Emergency Unlocking Penalty Makes Long Duration Positions Economically Advantageous
medium
Penalty fees can be shared among future farms or expired farms, risks of exploits
medium
Insufficient Intermediate Value Precision in StableSwap Calculations
medium
Liquidity providers can lose tokens due to disproportionate deposits not being properly handled
medium
M-07- Slippage Tolerance Vulnerability in StableSwap
Jul '24
Jun '24
Dec '22
Nov '22
high
Data corruption in NFTFloorOracle; Denial of Service
medium
safeTransfer is not implemented correctly
medium
Fallback oracle is using spot price in Uniswap liquidity pool, which is very vulnerable to flashloan price manipulation
medium
During oracle outages or feeder outages/disagreement, the `ParaSpaceFallbackOracle` is not used
medium
Centralization risk: admin can with rug the project by removing asset and price manipulation on oracle.
medium
MintableIncentivizedERC721 and NToken do not comply with ERC721, breaking composability
high
GiantLP with a transferHookProcessor cant be burned, users' funds will be stuck in the Giant Pool
high
GiantMevAndFeesPool.bringUnusedETHBackIntoGiantPool function loses the addition of the idleETH which allows attackers to steal most of eth from the Giant Pool
high
Giant pools can be drained due to weak vault authenticity check
medium
Banned BLS public keys can still be registered
medium
Attacker can grift syndicate staking by staking a small amount
medium
Incorrect checking in _assertUserHasEnoughGiantLPToClaimVaultLP
medium
Medium: Vaults can be griefed to not be able to be used for deposits
medium
Freezing of funds - Hacker can prevent users withdraws in giant pools
medium
Seller's ability to decrypt bids before reveal could result in a much higher clearing price than anticpated and make buyers distrust the system
medium
Attacker may DOS auctions using invalid bid parameters
medium
Incompatibility with fee-on-transfer/inflationary/deflationary/rebasing tokens, on both base tokens and quote tokens, with varying impacts
high
Non-existing revenue contract can be passed to claimRevenue to send all tokens to treasury
high
addCredit / increaseCredit cannot be called by lender first when token is ETH
medium
Lender can trade claimToken in a malicious way to steal the borrower's money via claimAndRepay() in SpigotedLine by using malicious zeroExTradeData
medium
Variable balance ERC20 support
medium
Borrower/Lender excessive ETH not refunded and permanently locked in protocol
Oct '22
medium
ERC777 reentrancy when withdrawing can be used to withdraw all collateral
medium
Protocol withdrawals of collateral can be unexpectedly locked if governance sets the `collateralFactorBps` to 0.
medium
Oracle assumes token and feed decimals will be limited to 18 decimals
medium
Chainlink oracle data feed is not sufficiently validated and can return stale `price`
high
An attacker can manipulate each pod and gain an advantage over the remainder Operators
high
Gas price spikes cause the selected operator to be vulnerable to frontrunning and be slashed
medium
HolographERC721.safeTransferFrom not compliant with EIP-721
medium
HolographERC721.approve not EIP-721 compliant
medium
Bond tokens (HLG) can get permanently stuck in operator
medium
`_payoutToken[s]()` is not compatible with tokens with missing return value
high
Overdue balances cannot be paid back
medium
Downcast in UToken.borrow allowing borrows that should not be allowed
medium
Comptroller.withdrawRewards: totalFrozen subtracted two times from totalStaked
medium
AssetManager.removeAdapter: Adapter not removed from withdrawSeq
medium
UserManager.cancelVouch not updating voucherIndexes / voucheeIndexes
Sep '22
high
Wrong accounting logic when syncRewards() is called within beforeWithdraw makes withdrawals impossible
medium
removeValidator() and removeMinter() may fail due to exceeding gas limit
medium
frxETHMinter.depositEther may run out of gas, leading to lost ETH
medium
frxETHMinter: Non-conforming ERC20 tokens not recoverable
high
Incorrect handling of pricefeed.decimals()
high
Users who deposit in one vault can lose all deposits and receive nothing when counterparty vault has no deposits
high
LOSS OF PRECISION RESULTING IN WRONG VALUE FOR PRICE RATIO
high
Risk users are required to payout if the price of the pegged asset goes higher than underlying
high
Vault.sol is not EIP-4626 compliant
high
Depeg event can happen at incorrect price
medium
Oracle is tracked per token instead of per pair, leading to surprise results
medium
Fee-on-Transfer tokens cause problems in multiple places
medium
StakingRewards: Significant loss of precision possible
medium
Different Oracle issues can return outdated prices
high
Possibility to burn all ETH in Crowdfund under some circumstances
high
PartyGovernance: Can vote multiple times by transferring NFT in same block as proposal
high
TokenDistributor: ERC777 tokensToSend hook can be exploited to drain contract
high
A majority attack can steal precious NFT from the party by crafting and chaining two proposals
medium
Possible that unanimous votes is unachievable
medium
Maximum bid will always be used in Auction
medium
# Only part of `keccak256()` is used as hash, making it susceptible to collision attacks
Aug '22
high
LEther: Flash loan can be used to manipulate borrow rate
high
ChainlinkOracle: Assumes all feeds have 8 decimals
high
ERC4626Oracle: Assumes that asset and share have same number of decimals
high
UniV2LPOracle: Decimals of pair tokens ignored
medium
StableBalancerLPOracle: Wrong calculation
medium
BalancerController: Can be misused to get non-approved tokens into the account
medium
AccountManager: Liquidations not possible when transfer fails
medium
AccountManager: address(0) used for borrowing ETH
medium
AccountManager: Fee-On-Transfer tokens not supported
medium
Voted votes cannot change after the user are issued with new votes or the user's old votes are revoked during voting
medium
[NAZ-M1] Chainlink's `latestRoundData` Might Return Stale Results
medium
Unexecutable proposals when Actions.MigrateKernel is not last instruction
medium
Activating same Policy multiple times in Kernel possible
medium
Heart::beat() could be called several times in one block if no one called it for a some time
high
Any borrower with bad debt can be liquidated multiple times to lock funds in the lending pair
high
`liquidate()` doesn't mark off bad debt, leading to a 'last lender to withdraw looses' scenario
medium
No incentives to write off bad debt when remaining collateral is very small
medium
FraxlendPair.sol is not fully EIP-4626 compliant
medium
Forget to check "Some manifolds contracts of ERC-2981 return (address(this), 0) when royalties are not defined" in 3rd priority - MarketFees.sol
medium
NFT of NFT collection or NFT drop collection can be locked when calling _mint or mintCountTo function to mint it to a contract that does not support ERC721 protocol
medium
Creator fees may be burned
medium
User may get all of the creator fees by specifying high number for himself
high
Builder can call `Community.escrow` again to reduce debt further using same signatures
high
Builder can halve the interest paid to a community owner due to arithmetic rounding
high
Add members to the not yet created community
high
Untyped data signing
high
Wrong APR can be used when project is unpublished and published again
high
Project funds can be drained by reusing signatures, in some cases
medium
Project.addTasks() wouldn't work properly when it's called from disputes contract.
medium
Attacker can drain all the projects within minutes, if admin account has been exposed
medium
changeOrder requires subcontractor signature when the subcontractor address is 0
medium
Hash approval not possible when contractor == subcontractor
Jul '22
high
Fund will be stuck if a buyout is started while there are pending migration proposals
high
Steal NFTs from a Vault, and ETH + Fractional tokens from users.
high
Division rounding can make fraction-price lower than intended (down to zero)
high
Malicious User Could Burn The Assets After A Successful Migration
high
```migrateFractions``` may be called more than once by the same user which may lead to loss of tokens for other users
medium
Migration fails when all tokens are joined
medium
An attacker can DoS vault's buyout with as little as 1 wei per 4 days
medium
Delegate call in `Vault#_execute` can alter Vault's ownership
medium
Migration total supply reduction can be used to remove minority shareholders
Jun '22