The function lacks validation for the destination chain ID (dstEid
), potentially allowing users to send tokens to non-existent or unsupported chains. This could lead to permanent loss of user funds and reduction in the total token supply, as tokens are burned without being minted elsewhere.
The teleport
function fails to implement a crucial security check for the destination chain ID (dstEid
):
The function accepts any uint32
value for dstEid
without verifying its validity. This allows transactions to be initiated to any chain ID, regardless of whether it's supported or even exists within the LayerZero network.
The impact of this vulnerability are:
Token Loss: When a user initiates a transfer to an invalid or unsupported destination chain:
Tokens are burned on the source chain.
The message fails to be delivered on the destination chain.
Potential for Malicious Exploitation: Each failed transfer to an invalid chain ID results in tokens being burned without being minted elsewhere. Thus, bad actors could intentionally reduce the token supply by repeatedly sending tokens to invalid chains.
Manual review
Implement a destination chain whitelist, so the user is sure to never loose value unfortunatly:
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.