Payouts
1st Places
2nd Places
3rd Places
All
Sherlock
Code4rena
Cantina
CodeHawks
Immunefi
Jan '25
medium
medium
Oct '24
high
high
high
medium
medium
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
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
A cross-chain message can be initiated with invalid parameters
medium
Wrong usage of transaction originator address instead of caller address
medium
Does not check if to_chain and to_handler is whitelisted in cross_chain_erc20_settlement
medium
Excessive Authority Granted to Managers in the `ckr_btc.cairo` Contract Presents Significant Management Risks
high
high
high
medium
medium
medium
medium
medium
medium
medium
medium
medium
medium
medium
Jul '24
high
`Tokens` Are Automatically Whitelisted Upon Creation And Binding Even When `_whiteListEnabled == false`
high
`Bridge` is unable to transfer ownership and upgrade on `ERC721Bridgeable`
medium
Starknet tokens deposited with use_withdraw_auto can never be withdrawn
medium
Tokens irrecoverable by owner on L1 if not an `ERC721` receiver
medium
Starknet bridge contract does not check if the collection supports IERC721Metadata interface, so the ones that do not implement it will not be able to bridge NFTs
May '24
high
Arbitrary tokens and data can be bridged to `GnosisTargetDispenserL2` to manipulate staking incentives
medium
Users will lose all ETH sent as `cost` parameter in transactions to and from Optimism
medium
Non-normalized amounts sent via Wormhole lead to failure to redeem incentives
medium
Refunds for unconsumed gas will be lost due to incorrect refund chain ID
medium
The `msg.value` - `cost` for multiple cross-chain bridges are not refunded to users
medium
The `refundAccount` is erroneously set to `msg.sender` instead of `tx.origin` when `refundAccount` specified as `address(0)`
medium
Mar '24
high
high
high
high
medium
medium
medium
medium
Feb '24
high
high
high
high
high
high
high
medium
medium
medium
medium
medium
low
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(...)`
medium
Erroneous probability calculation in physical attributes can lead to significant issues
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
Can mint NFT with the desired attributes by reverting transaction
medium
Fighter created by mintFromMergingPool can have arbitrary weight and element
Jan '24
high
high
medium
medium
medium
medium
medium
high
When `DecentBridgeExecutor.execute` fails, funds will be sent to a random address
high
Users will lose their cross-chain transaction if the destination router do not have enough WETH reserves.
high
Anyone can update the address of the Router in the DcntEth contract to any address they would like to set.
medium
DecentEthRouter.sol#_bridgeWithPayload() - Any refunded ETH (native token) will be refunded to the DecentBridgeAdapter, making them stuck
medium
Missing access control on UTB:receiveFromBridge allows UTB swaps to be executed without spending bridge fees while bypassing fee/swap instruction signature verification
medium
Users can use the protocol freely without paying any fees by calling the `DecentEthRouter::bridgeWithPayload()` function directly.
medium
Persistent Contract Call revert prevents finalizing a ballot
medium
Incorrect calculation to check remaining ratio after reward in StableConfig.sol
medium
Adversary can prevent updating price feed addresses by creating poisonous proposals ending in `_confirm`
medium
DOS of proposals by abusing ballot names without important parameters
medium
SALT staker can get extra voting power by simply unstaking their xSALT
high
Attack to make ````CurveSubject```` to be a ````HoneyPot````
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
medium
Curves::_buyCurvesToken(), Excess of Eth received is not refunded back to the user.
medium
If a user sets their curve token symbol as the default one plus the next token counter instance it will render the whole default naming functionality obsolete
Dec '23
high
Rewards can be drained because of lack of access control
high
Looping over unbounded `pendingStakes` array can lead to permanent DoS and frozen funds
medium
No incentive to liquidate small positions could result in protocol going underwater
medium
Incorrect calculation of amount of EURO to burn during liquidation