Payouts
1st Places
2nd Places
3rd Places
All
Sherlock
Code4rena
Dec '24
Nov '23
738.19 USDC • 1 total finding • Code4rena • adriro
#6
Oct '23
Sep '23
Aug '23
May '23
Apr '23
high
Risk of silent overflow in reserves update
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
Loss of funds for traders due to accounting error in royalty calculations
medium
Royalty recipients will not get fair share of royalties
medium
`changeFeeQuote` will fail for low decimal ERC20 tokens
medium
Flash loan fee is incorrect in Private Pool contract
medium
EthRouter can't perform multiple changes
high
Reward accounting is incorrect in BathBuddy contract
high
FeeWrapper fails to handle ETH payment refunds
high
`RubiconMarket._buys` will not work for V1 offers due to the reversion in `cancel` method.
high
An attacker can steal all tokens of users that use `FeeWrapper`
medium
BathBuddy contract should implement methods to pause and unpause contract
medium
Rewards for initial period may be lost in `BathBuddy` contract
medium
Low level calls to accounts with no code will succeed in `FeeWrapper`
medium
Fee inclusivity calculations are inaccurate in RubiconMarket
medium
Zero reward rate calculation impedes low-decimals token distributions
medium
Cannot close leveraged positions
medium
Incorrect calculations can occur when calling `Position._marketBuy` and `Position._marketSell` functions that do not include maker fee in `_fee`
Mar '23
high
A temporary issue shows in the staking functionality which leads to the users receiving less minted tokens.
high
Reth.sol: Withdrawals are unreliable and depend on excess RocketDepositPool balance which can brick the whole protocol
high
`WstEth` derivative assumes a ~1=1 peg of stETH to ETH
high
Reth `poolPrice` calculation may overflow
medium
In de-peg scenario, forcing full exit from every derivative & immediately re-entering can cause big losses for depositors
medium
DoS due to external call failure
medium
Missing derivative limit and deposit availability checks will revert the whole `stake()` function
high
Users will be able to purchase fewer NFTs than the project had anticipated
medium
Bio lines will overflow the buffer for repeated "continuation" characters
medium
Users can end up buying and paying for a different Tray than the one they were trying to acquire
medium
Incorrect emoji displaying
medium
Bio Protocol - `tokenURI` JSON injection
high
`LotteryMath.calculateNewProfit` returns wrong profit when there is no jackpot winner
medium
Unsafe casting from `uint256` to `uint16` could cause ticket prizes to become much smaller than intended
medium
The buyer of the ticket could be front-runned by the ticket owner who claims the rewards before the ticket's NFT is traded
Jan '23
high
Protocol fees can be withdrawn multiple times in `Erc20Quest`
high
Bad implementation in minter access control for `RabbitHoleReceipt` and `RabbitHoleTickets` contracts
medium
Buyer on secondary NFT market can lose fund if they buy a NFT that is already used to claim the reward
medium
Funds can be stuck due to wrong order of operations
medium
RabbitHoleReceipt's address might be changed therefore only manual mint will be available
medium
Users may not claim Erc1155 rewards when the Quest has ended
medium
DOS risk if enough tokens are minted in Quest.claim can lead, at least, to transaction fee lost
medium
User may loose rewards if the receipt is minted after quest end time
medium
_ownedTokensIndex is SHARED by different owners, as a result, _removeTokenFromAllTokensEnumeration might remove the wrong tokenId.
medium
Burning a `ERC1155Enumerable` token doesn't remove it from the enumeration
medium
`_currentIndex` is incorrectly updated; breaking the ERC1155 enumerable implementation
high
ERC4626Cloned deposit and mint logic differ on first deposit
medium
Function withdraw() and redeem() in ERC4626RouterBase would revert always because they have unnecessary allowance setting
medium
Users are unable to mint shares from a public vault using `AstariaRouter` contract when share price is bigger than one
high
`FeeRefund.tokenGasPriceFactor` is not included in signed transaction data allowing the submitter to steal funds
high
Arbitrary transactions possible due to insufficient signature validation
high
Attacker can gain control of counterfactual wallet
high
Destruction of the `SmartAccount` implementation
medium
SmartAccount.sol is intended to be upgradable but inherits from contracts that contain storage and no gaps
Dec '22
high
Hijacking of node operators minipool causes loss of staked funds
medium
MinipoolManager: recordStakingError function does not decrease minipoolCount leading to too high GGP rewards for staker
medium
MultisigManager may not be able to add a valid Multisig
medium
State Transition: Minipools can be created using other operator's AVAX deposit via recreateMinipool
medium
Coding logic of the contract upgrading renders upgrading contracts impractical
high
`LPDA` price can underflow the price due to bad settings and potentially brick the contract
medium
ETH will get stuck if all NFTs do not get sold.
medium
Sale contracts can be bricked if any other minter mints a token with an id that overlaps the sale
medium
Creator can still "cancel" a sale after it has started by revoking permissions in `OpenEdition` contract
medium
NFTs mintable after Auction deadline expires
Nov '22
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
high
Borrower can close a credit without repaying debt
high
Repaying a line of credit with a higher than necessary claimed revenue amount will force the borrower into liquidation
high
Call to declareInsolvent() would revert when contract status reaches liquidation point after repayment of credit position 1
medium
Lender can trade claimToken in a malicious way to steal the borrower's money via claimAndRepay() in SpigotedLine by using malicious zeroExTradeData
medium
The lender can draw out extra credit token from borrower's account
medium
Whitelisted functions aren't scoped to revenue contracts and may lead to unnoticed calls due to selector clashing
medium
address.call{value:x}() should be used instead of payable.transfer()
medium
Borrower/Lender excessive ETH not refunded and permanently locked in protocol
Oct '22
Sep '22