Sàn giao dịch Rubic đã bị hack dẫn đến khoản lỗ 1,4 triệu USD. Theo báo cáo, được biết kẻ tấn công hiện đã gửi 1100 ETH đến Tornado Cash.
Rubic là công cụ tổng hợp DEX chuỗi chéo . Người dùng có thể trao đổi mã thông báo gốc thông qua chức năng routerCallNative của hợp đồng RubicProxy. Nó sẽ thực hiện kiểm tra để xác định Route Target của cuộc gọi cần thiết do người dùng đưa vào có nằm trong whitelist của giao thức hay không.
Giám sát do PeckShield thực hiện cho thấy giao thức trao đổi multi-chain này đã bị xâm phạm, dẫn đến thiệt hại hơn 1,4 triệu đô la. Kẻ tấn công cũng đã xâm phạm giao thức Tornado Cash mixing bằng cách chuyển 1.100 ETH đến đó.
Sau khi phân tích quy trình bị đánh cắp, nhóm bảo mật SlowMist đã đi đến kết luận rằng động cơ chính đằng sau cuộc tấn công là do giao thức đã thêm sai token USDC vào whitelist của Router. Điều này khiến cho token USDC từ những người dùng được phép truy cập hợp đồng RubicProxy bị đánh cắp.
Chỉ sau khi kiểm tra whitelist thì Route Target do người dùng cung cấp mới được gọi và người dùng cũng sẽ cung cấp dữ liệu sẽ được sử dụng để thực hiện cuộc gọi. Thật không may, tiền USDC cũng đã được thêm vào whitelist của Router, một phần của Rubic protocol. Điều này giúp bất kỳ người dùng nào cũng có thể gọi ngẫu nhiên token USDC bằng cách sử dụng hợp đồng RubicProxy.
Do đó, những người dùng độc hại lợi dụng lỗ hổng này bằng cách gọi hợp đồng USDC thông qua chức năng routerCallNative và chuyển token USDC từ những người dùng được phép truy cập hợp đồng RubicProxy vào tài khoản của người dùng độc hại thông qua giao diện transferFrom.