Cointime

Download App
iOS & Android

What Are Common Bridge Security Vulnerabilities?

This article is a community submission. The author is Minzhi He, an auditor at CertiK.

Views in this article are of the contributor/author and do not necessarily reflect those of Binance Academy.

TL;DR

Blockchain bridges are critical in achieving interoperability in the blockchain space. Hence, bridge security is of paramount importance. Some common bridge security vulnerabilities include weak on-chain and off-chain validation, improper handling of native tokens, and misconfigurations. Testing the bridge against all possible attack vectors is recommended to ensure sound verification logic.

Introduction

A blockchain bridge is a protocol connecting two blockchains to allow interactions between them. If you own bitcoin but want to participate in DeFi activity on the Ethereum network, a blockchain bridge enables you to do so without selling your bitcoin.

Blockchain bridges are fundamental to achieving interoperability within the blockchain space. They function using various on-chain and off-chain validations and therefore have different security vulnerabilities.

Why Is Bridge Security Critical?

A bridge usually holds the token a user wants to transfer from one chain to another. Often deployed as smart contracts, bridges hold a significant amount of tokens as the cross-chain transfers accumulate, making them lucrative targets for hackers.

In addition, blockchain bridges have a large attack surface as they involve many components. With that in mind, malicious actors are highly motivated to target cross-chain applications to drain large sums of funds.

Bridge attacks led to losses of over 1.3 billion USD in 2022, accounting for 36% of the year’s total losses, according to CertiK’s estimates.

Common Bridge Security Vulnerabilities

To enhance the security of bridges, it’s valuable to understand common bridge security vulnerabilities and test the bridges for them before launch. These vulnerabilities can be categorized into the following four areas.

Weak on-chain validation

For simple bridges, especially those designed for specific DApps, on-chain validation is kept to a minimum. These bridges rely on a centralized backend to execute basic operations like minting, burning, and token transfers while all verifications are performed off-chain.

In contrast, other types of bridges use smart contracts to validate messages and perform verifications on-chain. In this scenario, when a user deposits funds into a chain, the smart contract generates a signed message and returns the signature in the transaction. This signature serves as proof of the deposit and is used to verify the user's withdrawal request on the other chain. This process should be able to prevent various security attacks, including replay attacks and forged deposit records.

However, if there is a vulnerability during the on-chain validation process, the attacker can cause severe damage. For example, if a bridge uses Merkle tree to validate the transaction record, an attacker can generate forged proofs. This means they can bypass proof validation and mint new tokens to their account if the validation process is vulnerable.

Certain bridges implement the concept of “wrapped tokens.” For instance, when a user transfers DAI from Ethereum to BNB Chain, their DAI is taken from the Ethereum contract, and an equivalent amount of wrapped DAI is issued on the BNB Chain.

However, if this transaction isn’t properly validated, an attacker could deploy a malicious contract to route the wrapped tokens from the bridge to an incorrect address by manipulating the function.

The attackers also need victims to approve the bridge contract to transfer tokens using the function “transferFrom” to drain assets from the bridge contract.

Unfortunately, this is made worse because many bridges request infinite token approval from DApp users. This is a common practice that lowers gas fees but creates additional risks by allowing a smart contract to access an unlimited number of tokens from the user’s wallet. Attackers are able to exploit the lack of validation and excessive approval to transfer tokens from other users to themselves.

Weak off-chain validation

In some bridge systems, the off-chain backend server plays a critical role in verifying the legitimacy of messages sent from the blockchain. In this instance, we’re focusing on the verification of deposit transactions. 

A blockchain bridge with off-chain validation works as follows: 

  1. Users interact with the DApp to deposit tokens into the smart contract on the source chain.
  2. The DApp then sends the deposit transaction hash to the backend server via an API.
  3. The transaction hash is subject to several validations by the server. If deemed legitimate, a signer signs a message and sends the signature back to the user interface via the API.
  4. Upon receiving the signature, the DApp verifies it and permits the user to withdraw their tokens from the target chain.

The backend server must ensure that the deposit transaction it processes has actually occurred and was not forged. This backend server determines whether a user can withdraw tokens on the target chain and is, therefore, a high-value target for attackers.

The backend server needs to validate the structure of the transaction’s emitted event, as well as the contract address that emitted the event. If the latter is neglected, an attacker could deploy a malicious contract to forge a deposit event with the same structure as a legitimate deposit event. 

If the backend server does not verify which address emitted the event, it would consider this a valid transaction and sign the message. The attacker could then send the transaction hash to the backend, bypassing verification and allowing them to withdraw the tokens from the target chain.

Improper handling of native tokens

Bridges take different approaches toward handling native tokens and utility tokens. For example, on the Ethereum network, the native token is ETH and most utility tokens adhere to the ERC-20 standard.

When a user intends to transfer their ETH to another chain, they must first deposit it into the bridge contract. To achieve this, the user simply attaches the ETH to the transaction, and the amount of ETH can be retrieved by reading the “msg.value” field of the transaction.

Depositing ERC-20 tokens differs significantly from depositing ETH. To deposit an ERC-20 token, the user must first allow the bridge contract to spend their tokens. After they’ve approved this and deposited the tokens into the bridge contract, the contract will either burn the user's tokens using the "burnFrom()" function or transfer the user's token to the contract using the "transferFrom()" function.

One approach to differentiate this is to use an if-else statement within the same function. Another approach is to create two separate functions to handle each scenario. Attempting to deposit ETH using the ERC-20 deposit function can result in the loss of these funds.

When handling ERC-20 deposit requests, users usually provide the token address as input to the deposit function. This poses a significant risk as untrusted external calls can occur during the transaction. Implementing a whitelist that only includes the tokens supported by the bridge is a common practice to minimize risk. Only whitelisted addresses are allowed to be passed as arguments. This prevents external calls as the project team has already filtered the token address.

However, issues may also arise when bridges handle native token cross-chain transfer, as the native token does not have an address. A zero address (0x000...0) is representative of the native token. This can be problematic since passing the zero address to the function can bypass the whitelist verification even if implemented incorrectly.

When the bridge contract calls “transferFrom” to transfer user assets to the contract, the external call to the zero address returns false since there is no “transferFrom” function implemented in the zero address. However, the transaction may still occur if the contract does not handle the return value appropriately. This creates an opportunity for attackers to execute the transaction without transferring any tokens to the contract.

Misconfiguration

In most blockchain bridges, a privileged role is responsible for whitelisting or blacklisting tokens and addresses, assigning or changing signers, and other critical configurations. Ensuring that all configurations are accurate is crucial, as even seemingly trivial oversights can lead to significant losses.

In fact, there has been an incident where the attacker successfully bypassed the transfer record verification due to a misconfiguration. The project team implemented a protocol upgrade a few days before the hack, which involved changing a variable. The variable was used to represent the default value of the trusted message. This change resulted in all messages being automatically deemed proven, thus allowing an attacker to submit an arbitrary message and pass the verification process.

How To Improve Bridge Security

The four common bridge vulnerabilities explained above demonstrate the challenges to ensuring security in an interconnected blockchain ecosystem. There are significant considerations for handling each of these vulnerabilities, and no single playbook applies to all of them.

For example, providing general guidelines to ensure an error-free verification process is challenging since each bridge has unique verification requirements. The most effective approach to prevent verification bypass is to thoroughly test the bridge against all possible attack vectors and ensure the verification logic is sound.

To summarize, it’s essential to perform rigorous testing against potential attacks and pay special attention to the most common security vulnerabilities in bridges.

Closing Thoughts

Due to their high value, cross-chain bridges have long been a target for attackers. Builders can strengthen their bridges’ security by conducting thorough pre-deployment testing and engaging in third-party audits, reducing the risk of the devastating hacks that have plagued bridges over the last few years. Bridges are critical in a multi-chain world, but security must be a primary concern when designing and building an effective Web3 infrastructure.

Read more: https://academy.binance.com/en/articles/what-are-common-bridge-security-vulnerabilities

Comments

All Comments

Recommended for you

  • BTC Falls Below $66,000

    Market data shows that BTC has fallen below $66,000, currently priced at $65,996.26, with a 24-hour increase of 0.45%. The market is experiencing significant volatility, so please ensure proper risk management.

  • Legendary Investor Klarman Warns: AI Boom Shows Signs of Bubble, Fund Avoids Investment in OpenAI and Anthropic

    On June 16, Seth Klarman, founder of the hedge fund Baupost Group and known as the 'Boston Buffett', issued a stern warning regarding the current investment frenzy in artificial intelligence (AI). He noted that market valuations are showing clear signs of a bubble, and his fund is completely avoiding investments in large language model companies such as OpenAI and Anthropic. Klarman has managed Baupost for 44 years, during which he recorded only five years of losses, renowned for his rigorous protection against downside risks. He believes that the current tech market valuations are 'extremely stretched', with investors making overly optimistic assumptions about the distant future to align with new-era thinking. He explicitly stated that Baupost has not participated in any investments in trillion-parameter large language model companies, as these companies continue to burn cash at a high rate and face disaster if their technology falls behind, which does not meet his definition of great enterprises. The market tends to classify companies simply as 'AI winners', 'AI losers', and 'AI unknowns', with funds wildly flowing into the former. Baupost is currently focusing on the 'AI unknowns', which are companies that will not be disrupted by AI or where AI has little impact on their business. Meanwhile, the team is also examining some credit assets perceived by the market as 'AI losers', believing there may be mispricing opportunities among them.

  • Trump Discusses US-Iran Agreement: Thanks to China and Russia for Assistance

    On June 16, according to Observer Network, after nearly four months of conflict instigated by Israel, the United States and Iran have finally confirmed that they will reach an agreement. On June 14, local time, U.S. President Trump posted on social media that the U.S.-Iran agreement is 'now complete.' On the same day, while celebrating his 80th birthday at the White House, he told The New York Times that he is grateful for the assistance provided by 'friends' in China and Russia during this process. He stated that both countries helped facilitate the agreement between Americans and Iranians, or at least did not disrupt the U.S. blockade by sending oil tankers or other merchant ships through the Strait of Hormuz, thus creating conditions for the agreement. Trump noted that China 'did not send a single oil tanker, and there were 20 destroyers on each side trying to break the blockade (by U.S. forces in the Strait of Hormuz).' However, Trump harshly criticized Israeli Prime Minister Netanyahu for initiating attacks that nearly jeopardized the final agreement. 'He is a very difficult person,' Trump said of Netanyahu, 'To be honest, he should be very grateful that we did this. Because if Iran had nuclear weapons, Israel wouldn't last two hours.'

  • Trump: Details of US-Iran Agreement to Be Released After Signing on 19th

    On June 16, during the G7 summit in Évian-les-Bains, France, U.S. President Trump stated that the details of the US-Iran agreement will be made public after its official signing on the 19th. (Xinhua News Agency)

  • Iranian Foreign Minister Announces Memorandum Signing on June 19

    On June 15, Iranian Foreign Minister Amir-Abdollahian stated that a meeting between the heads of the Iranian and American negotiating delegations is expected to take place in Switzerland on June 19, during which a memorandum of understanding between Iran and the United States will be signed, followed by the first round of subsequent negotiations. (CCTV International News)

  • U.S. Senior Officials: U.S. and Iran Sign Memorandum of Understanding

    On June 16, a senior U.S. official stated that the United States has signed a memorandum of understanding with Iran. U.S. President Trump and Vice President Pence signed the memorandum, and the Speaker of the Iranian Islamic Consultative Assembly also signed the document. The official also mentioned that the agreement stipulates the immediate opening of the Strait of Hormuz and the lifting of U.S. sanctions on Iran. Traffic in the strait will significantly increase starting immediately.

  • BTC Surpasses $67,000

    Market data shows that BTC has surpassed $67,000, currently priced at $67,197.47, with a 24-hour increase of 4.94%. The market is highly volatile, so please ensure proper risk management.

  • Musk's Wealth Reaches $1.2 Trillion as SpaceX Surpasses TSMC in Valuation

    On June 15, according to the latest global billionaire rankings released by Forbes, Elon Musk, the head of Tesla and SpaceX, has seen his personal wealth soar to an astonishing $1.2 trillion, setting a historical record. He became the world's first 'trillionaire' in the previous trading day. This wealth phenomenon is primarily attributed to the strong performance of his two flagship companies. Recent market data shows that SpaceX (SPCX) has reached a total valuation of $2.28 trillion (approximately $2.28 trillion), surging 8% in a single day, officially surpassing semiconductor giant TSMC (TSM), which has a market value of $2.26 trillion, and entering the top tier of U.S. stock market valuations, ranking sixth. Currently, the top three in the U.S. stock market by total market value are Nvidia ($5.05 trillion), Google, and Apple. SpaceX, with its absolute dominance in the commercial space and Starlink sectors, continues to see its valuation skyrocket, becoming the core pillar of Musk's trillion-dollar fortune.

  • Philadelphia Semiconductor Index Soars 4.7% in Early Trading

    On June 15, the Philadelphia Semiconductor Index opened high, rising by 4.7%. Nvidia's stock price increased by 2.67%, TSMC's stock price rose by 3.76%, Broadcom's stock price went up by 3.37%, Micron Technology's stock price surged by 9.31%, Advanced Micro Devices' stock price climbed by 6.61%, and ASML's stock price gained 1.47%.

  • SpaceX Raises Approximately $85.7 Billion in Initial Public Offering

    On June 15, SpaceX announced that underwriters have fully exercised their over-allotment option in the IPO, purchasing an additional 83.33 million shares. SpaceX has raised approximately $85.7 billion through the IPO.