depositTokens
and withdrawTokens
functions, where it sends messages to another contract via IStarknetMessaging
. If these external calls (sendMessageToL2
, startL1ToL2MessageCancellation
, cancelL1ToL2Message
) can trigger callbacks or allow for re-entry into the contract before state updates are finalized, it could lead to reentrancy attacks.IStarknetMessaging(_starknetCoreAddress).sendMessageToL2{value: msg.value}(...); // Line 137
IStarknetMessaging(_starknetCoreAddress).startL1ToL2MessageCancellation(...); // Line 227
IStarknetMessaging(_starknetCoreAddress).cancelL1ToL2Message(...); // Line 247
Manual code review
nonReentrant
modifier from OpenZeppelin's ReentrancyGuard
.Please, do not suppose impacts, think about the real impact of the bug and check the CodeHawks documentation to confirm: https://docs.codehawks.com/hawks-auditors/how-to-determine-a-finding-validity A PoC always helps to understand the real impact possible.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.