Vào ngày 24 tháng 4, một lỗ hổng nghiêm trọng trong hợp đồng XBridge đã bị khai thác. Kẻ tấn công đã sử dụng lỗ hổng này để đánh cắp tiền của người dùng đã được đăng ký bắc cầu bằng XBridge . Điều này dẫn đến khoản lỗ ước tính là 1,6 triệu đô la khi kết hợp các mã thông báo STC , SRLTY và Mazi .
Tổng quan
Địa chỉ của kẻ tấn công: https://etherscan.io/address/0x0cfc28d16d07219249c6d6d6ae24e7132ee4caa7
Hợp đồng dễ bị tổn thương: https://etherscan.io/address/0x354cca2f55dde182d36fe34d673430e226a3cb8c#code
Tấn công Tx Step1 (chủ sở hữu đăng ký lại): https://etherscan.io/tx/0xe09d350d8574ac1728ab5797e3aa46841f6c97239940db010943f23ad4acf7ae
Tấn công Tx Step2 (rútToken): https://etherscan.io/tx/0x903d88a92cbc0165a7f662305ac1bff97430dbcccaa0fe71e101e18aa9109c92
Phân tích khai thác
Hợp đồng XBridge cho phép người dùng đăng ký mã thông báo của họ để làm cầu nối giữa các chuỗi. Sau đó, chủ sở hữu Token có thể gửi mã thông báo để hoạt động như một nhà cung cấp thanh khoản để bắc cầu và họ có thể rút mã thông báo của mình bất kỳ lúc nào.
Khi chủ sở hữu liệt kê Token của họ bằng hàm listToken , địa chỉ của họ được đăng ký là _tokenOwner . Điều này cấp cho họ khả năng gửi và rút _baseToken . Tuy nhiên, chức năng này chỉ kiểm tra xem cặp này có được thiết lập hay không. Nó thiếu kiểm tra để ngăn người khác đăng ký lại _baseToken với một cặp khác, cho phép họ trở thành _tokenOwner .
Phần kết luận
Để tăng cường an ninh cầu, các biện pháp sau đây là cần thiết: