People often ask me "How did you learn how to hack?" The answer: by reading. This page is a collection of the blog posts and other articles that I have accumulated over the years of my journey. Enjoy!
burn() function removing the tokens from circulation. ExitToNear. This records the sender, destination and amount of this exit. call and delegateCall. With call, the internal state variables cannot be changed from the other contract. However, delegateCall is designed exactly for this. Even with this for delegateCall, the AMOUNT of ether for msg.value is forwarded to the contract, even if the contract does not really have the money. ExitToNear can be called directly. If we use delegateCall, we can send Ether to OUR contract without sending it to the bridge. delegateCall retains the msg.value without actually having the money, ExitToNear will log that is received a bunch of ETH, when it never did. As a result, the owner keeps the money but makes the bridge believe that they need to wrap the coin on the other platform for them. This allows infinite creation of money!ExitToNear must be called by the bridge contract itself. Overall, a great find in complex software that led to a 6 million payout.