Balancer (BAL) bị hack tức tưởi, nửa triệu USD bốc hơi vì lỗ hổng của cơ chế burn coin

Giao thức market maker tự động hóa Balancer vừa bị hack với tổng số tiền trị giá 500.000 USD chỉ trong một giao dịch Ethereum duy nhất. Và một lần nữa, sự việc này diễn ra trong một giao dịch cho vay nhanh (flash loan) của dYdX.

Balancer (BAL) bị hack tức tưởi, nửa triệu USD bốc hơi vì lỗ hổng của cơ chế burn coin
Balancer (BAL) bị hack tức tưởi, nửa triệu USD bốc hơi vì lỗ hổng của cơ chế burn coin

Như phân tích từ đội ngũ của 1inch.exchange vài giờ sau khi sự vụ này diễn ra, một giao dịch đáng ngờ đã được thiết kế tỉ mỉ với tổng chi phí lên đến 8 triệu gas, khoảng 2 phần 3 kích thước của một block Ethereum, từ đó đánh cắp 500.000 USD giá trị Ether, Wrapped BTC (WBTC), Chainlink (LINK) và Synthetix (SNX).

Lỗ hổng từ việc burn token tự động hóa

Vào lúc 01 giờ sáng ngày 29/06, giao dịch này bắt đầu kích hoạt khoản vay từ dYdX với tổng lượng ETH là 104.000 (tức 23 triệu USD).

Thủ thuật này nhằm vào điểm yếu của Statera (STA), một token được thiết kế để burn 1% tổng giá trị giao dịch sau khi quá trình chuyển đổi vừa diễn ra. Smart contract của Balancer mặt khác lại không thể phát hiện ra thủ thuật này, do đó tưởng nhầm rằng mỗi giao dịch trên sẽ được kích hoạt và số dư STA sau đó vẫn bằng 100% giá trị ban đầu.

Các hacker đã tận dụng lỗ hổng này để trao đổi liên tục 24 lần giữa Statera và Ether. Trong mỗi lần thực hiện, số dư STA trong hợp đồng sẽ giảm đi 1%, tuy nhiên smart contract lại không ghi nhận điều này. Vì vậy, giá của của lượng STA còn lại vẫn giữ nguyên như trước dù cho nguồn cung đã vừa bị sụt giảm.

Theo những tiết lộ từ Balancer, vào cuối mỗi giao dịch, các hacker đã gọi hàm để cập nhật lại giá dựa trên số dư có trong pool. Vì phía STA có chênh lệch về lượng coin, giá hiển nhiên sẽ xuất hiện một độ chênh lệch lớn.
Các hacker sử dụng STA để trao đổi qua lại với các đồng tiền khác có mặt trên nền tảng, bao gồm ETH, BTC, LINK và SNX. Vì cơ chế burn coin, nhóm tấn công trên cứ tiếp tục thực hiện trao đổi qua lại cho đến khi số dư còn lại của STA không còn.

Từ đó, chúng chuyển đổi lượng STA trong pool của Balancer và cash out ra dưới dạng Ether nhờ Uniswap.
Vấn đề an ninh bị đặt dấu chấm hỏi

Đội ngũ của Balancer bị cáo buộc bởi STA vì đã không phát hiện ra lỗi trên, dù cho những báo cáo đã được gửi cách đây 2 tháng. CTO của Balancer là Mike McDonald xác nhận những báo cáo trên là có, song lại cho rằng những vấn đề trong báo cáo là không thể tiếp cận để xử lý và khẳng định hệ quả này là do cơ chế cho vay nhanh (flash loan).

Trong một dòng tweet đã bị xóa của mình, McDonald cho biết sẽ chịu trách nhiệm với lỗ hổng trên.

Vài ngày trước khi diễn ra vụ việc, một hình ảnh được ghi lại cho thấy Statera đã cảnh báo Balancer về lỗ hổng trên.

Mặc cho đội ngũ của Balancer đã có những cẩn trọng với pool coin của STA bằng việc không hỗ trợ đồng tiền này trong chương trình mining của mình, nhưng vẫn chưa rõ lí do cụ thể vì sao vấn đề này chưa được xử lý ở cấp smart contract. Vào cùng thời điểm đó, giao thức này cho phép bất cứ ai cũng có thể tạo ra thêm pool mới tùy thuộc vào mức độ rủi ro của mình. Đây là tình trạng khá giống với vụ hack dForce diễn ra trên Uniswap, khi một pool được tạo ra tùy ý (mặc cho những cảnh báo từ đội ngũ quản lý) và bị hack ngay sau đó.

Trong khi tài liệu của Balancer khẳng định rủi ro của các token như Statera, song lại chỉ đề cập đến đồng tiền này như một tài sản có thể tồn tại những cơ hội mua bán chênh lệch (arbitrage). Đại diện phía Statera thì lại cho rằng “nếu biết trước mình gặp phải những rủi ro kiểu này với cơ chế và hệ thống, chúng tôi đã không hợp tác cùng Balancer.”

Những thông tin mới nhất về sự việc này sẽ được nhanh chóng cập nhật.

Theo Cointelegraph

Có thể bạn quan tâm:

Add Comment