Lumi Finance trên Arbitrum bị tấn công ngày 13/7, gây thiệt hại khoảng 270.000 USD. GoPlus cho biết lỗ hổng nằm ở logic của hàm validateUserOp trong hợp đồng sodium smart account theo chuẩn ERC-4337, cho phép kẻ tấn công khai thác quyền phê duyệt token ERC20 từ nhiều tài khoản thông minh.
Vấn đề phát sinh khi hàm _validateSignature kiểm tra chữ ký nhưng tham số signer lại được truyền là địa chỉ của kẻ tấn công. Trong quá trình isValidSignatureNow chạy, ECDSA.tryRecover gặp lỗi nhưng không hoàn tất giao dịch, mà chuyển sang gọi hàm isValidSignature trong hợp đồng của kẻ tấn công và vẫn vượt qua kiểm tra.
Từ đó, kẻ tấn công có thể thực hiện các lệnh approve token ngay trong giai đoạn xác thực UserOperation, giành quyền phê duyệt với nhiều tài khoản thông minh mà không cần sự cho phép của payer.