Payouts
1st Places
3rd Places
Top 10
All
Sherlock
Code4rena
CodeHawks
Feb '25
Jan '25
Oct '24
Sep '24
Aug '24
high
There is no refund mechanism in `ChakraSettlement.processCrossChainCallback` or `ChakraSettlementHandler.receive_cross_chain_callback` function
high
`ChakraSettlement.receive_cross_chain_msg` and `ChakraSettlement.receive_cross_chain_callback` functions do not ensure that receiving `ChakraSettlement` contract's `contract_chain_name` must match `to_chain` corresponding to respective `txid` input though
high
In settlement.cairo::receive_cross_chain_msg - the payload_type can be passed by the user, confusing offchain systems
high
Anyone can manipulate user nonce (nonce_manager) in settlement contract
high
SettlementSignatureVerifier is missing check for duplicate validator signatures
high
In Starknet already processed messages can be re-submitted and by anyone
high
handler's `receive_cross_chain_callback()` will always set the tx_status to `SETTLED` on source chain & burn the tokens (MintBurn Mode) even when the msg fails on destination
medium
Does not check if to_chain and to_handler is whitelisted in cross_chain_erc20_settlement
medium
SettlementSignatureVerifier's required_validators is not updated, resulting in a low or high number of signatures being required
Jul '24
high
`mintToken()`, `mintWithBudget()`, and `forge()` in the `TraitForgeNft` Contract Will Fail Due to a Wrong Modifier Used in `EntropyGenerator.initializeAlphaIndices()`
high
Number of entities in generation can surpass the 10k number
high
Wrong minting logic based on total token count across generations
medium
Forger Entities can forge more times than intended
medium
Pause and unpause functions are inaccessible
Mar '24
high
Valid redemption proposals can be disputed by decreasing collateral
high
Closing a SR during a wrong redemption proposal leads to loss of funds
medium
Using cached price to create a proposal reduce the efficacity of redemptions for asset peg
medium
oracleCircuitBreaker: Not checking if price information of asset is stale
medium
transferShortRecord: Can transfer a newly created ShortRecord using a previously minted NFT
medium
Can manipulate the C.SHORT_STARTING_ID ShortRecord of the TAPP
Feb '24
high
New withdrawal requests can be created in the same epoch after WithdrawalQueue.queueCurrentEpochSettlement, causing loss of tokens for the user
medium
depositTokenToOperators: When allocating ERC20 to multiple operators, it always fails because the predicted share and the actual share received are not the same
medium
Can verify with an external validator that is not registered in the Rio system. Prevent other operators from verifying
medium
RioLTROperatorDelegator.receive always reverts so it is unable to receive partial withdrawals and any amount in excess of 32 ETH for full withdrawals
high
A locked fighter can be transferred; leads to game server unable to commit transactions, and unstoppable fighters
high
Since you can reroll with a different fighterType than the NFT you own, you can reroll bypassing maxRerollsAllowed and reroll attributes based on a different fighterType
high
Players have complete freedom to customize the fighter NFT when calling `redeemMintPass` and can redeem fighters of types Dendroid and with rare attributes
high
Player can mint more fighter NFTs during claim of rewards by leveraging reentrancy on the `claimRewards() function `
high
Fighters cannot be minted after the initial generation due to uninitialized `numElements` mapping
high
Non-transferable `GameItems` can be transferred with `GameItems::safeBatchTransferFrom(...)`
high
FighterFarm:: reroll won't work for nft id greator than 255 due to input limited to uint8
medium
NFTs can be transferred even if StakeAtRisk remains, so the user's win cannot be recorded on the chain due to underflow, and can recover past losses that can't be recovered(steal protocol's token)
medium
Minter / Staker / Spender roles can never be revoked`..,
medium
Can mint NFT with the desired attributes by reverting transaction
medium
DoS in `MergingPool::claimRewards` function and potential DoS in `RankedBattle::claimNRN` function if called after a significant amount of rounds passed.
medium
Fighter created by mintFromMergingPool can have arbitrary weight and element
Jan '24
high
When borrowers repay USDS, it is sent to the wrong address, allowing anyone to burn Protocol Owned Liquidity and build bad debt for USDS
high
User can evade `liquidation` by depositing the minimum of tokens and gain time to not be liquidated
medium
Incorrect calculation to check remaining ratio after reward in StableConfig.sol
medium
Some rewards from POL will not be send to team wallet nor burned
medium
DOS of proposals by abusing ballot names without important parameters
medium
SALT staker can get extra voting power by simply unstaking their xSALT
medium
Unwhitelisting does not clear _arbitrageProfits, so re-whitelisting may result in an unfair distribution of liquidity rewards.
medium
Remove Liquidity has missing reserve1 DUST check, which can make reserve1 to be less than DUST
medium
Impossible to change managed wallets with `proposeWallets` after first rejection
medium
Absence of autonomous mechanism for `selling collateral assets in the external market in exchange for USDS` will cause undercollateralization during market crashes and will cause USDS to depeg.
high
Whitelised accounts can be forcefully DoSed from buying curveTokens during the presale
high
Unrestricted claiming of fees due to missing balance updates in `FeeSplitter`
high
Unauthorized Access to setCurves Function
medium
Protocol and referral fee would be permanently stuck in the Curves contract when selling a token
medium
onBalanceChange causes previously unclaimed rewards to be cleared
Dec '23
Oct '23
Sep '23
Aug '23
Jul '23