Radix Foundation ngày 17/9 cho biết một lỗ hổng bắt nguồn từ đợt tái cấu trúc mã năm 2023 trên mạng Radix đã bị khai thác vào tháng 8 năm nay, khiến khoảng 1,26 triệu USD tài sản bị chuyển khỏi nhiều vault. Do lỗi nằm trong Radix Engine — lớp chịu trách nhiệm thực thi giao dịch và xác minh quyền sở hữu tài sản — các validator đã chủ động dừng cơ chế đồng thuận, khiến giao dịch blockchain bị đình chỉ hơn 10 ngày.
Tác động của sự cố không chỉ giới hạn ở số tài sản bị lấy đi. Điều tra cho thấy về lý thuyết, lỗ hổng có thể được sử dụng để tấn công bất kỳ vault nào trên mạng, bao gồm tài khoản người dùng, ứng dụng và token trong các pool thanh khoản. Với các nền tảng giao dịch và nhà cung cấp thanh khoản, vấn đề cốt lõi là ranh giới quyền hạn vốn phải được lớp thực thi nền tảng áp dụng đã không hoạt động đúng.
26 giao dịch chuyển nhiều loại tài sản
Theo dữ liệu sổ cái được cộng đồng tái dựng, kẻ tấn công đã thực hiện 26 giao dịch khai thác trong khoảng thời gian từ 16:02 đến 16:57 UTC ngày 31/8. Số tài sản bị chuyển đi gồm khoảng 458.915 USDC, 72.420 USDT, 61,08 ETH, 6,35 Wrapped Bitcoin, 536,16 SOL và 32,91 BNB. Tính theo giá thị trường ngày 31/8, tổng giá trị vào khoảng 1,26 triệu USD, trong đó riêng hai stablecoin có giá trị khoảng 531.300 USD.
Kẻ tấn công cũng rút 13.000 XRD từ một vault để thanh toán phí giao dịch. Sau đó, số tài sản bị đánh cắp được chuyển qua Hyperlane tới Ethereum, BNB Chain và Solana, rồi đổi sang ETH. Radix Foundation cho biết cầu nối Hyperlane vẫn vận hành theo thiết kế; kẻ tấn công chỉ sử dụng công cụ xuyên chuỗi này sau khi giành được tài sản trong Radix Engine. Hiện chưa có dấu hiệu cho thấy khóa riêng tư bị lộ.
Giá trị tài sản đã được chuyển đi có thể chưa phản ánh đầy đủ thiệt hại của sự cố. Các nhà điều tra nhận định lỗ hổng không chỉ ảnh hưởng đến những tài sản xuyên chuỗi bị rút trực tiếp; token và tài sản trong các vault khác trên mạng cũng có thể đối mặt với cùng một rủi ro.
Lỗi xuất hiện sau đợt tái cấu trúc mã năm 2023
Radix Foundation cho biết lỗi được đội ngũ phát triển RDX Works đưa vào trong quá trình dọn dẹp mã Radix Engine vào tháng 6/2023. Lỗ hổng tồn tại trên mạng hơn ba năm trước khi bị khai thác vào ngày 31/8/2026.
Vấn đề nằm ở cách engine xử lý tham chiếu tới vault. Một giao dịch có thể sử dụng địa chỉ nội bộ để trỏ tới vault của người dùng khác và truyền tham chiếu này cho một smart contract cụ thể. Sau đó, Radix Engine cho phép gọi hàm rút tiền thông thường nhưng không thực hiện đúng bước kiểm tra quyền sở hữu, từ đó không từ chối yêu cầu trái phép.
Theo thiết kế thông thường, chỉ chủ sở hữu vault hoặc giao dịch đã được cấp quyền mới có thể rút tài sản bên trong. Tuy nhiên, lỗi này có thể cho phép kẻ tấn công tiếp cận tiền trong tài khoản người dùng, ứng dụng và pool thanh khoản mà không cần chữ ký của chủ sở hữu tài sản.
Lỗi mã nói trên trước đó cũng đã vượt qua một cuộc kiểm tra an ninh độc lập. Zellic tiến hành kiểm toán giao thức Radix vào năm 2024, bao gồm phần lõi của engine chứa lỗ hổng, nhưng không phát hiện lỗi liên quan đến quyền hạn này. Do lỗi bắt nguồn từ đợt tái cấu trúc mã của năm trước, sự cố cho thấy các thay đổi trong công việc bảo trì định kỳ có thể làm thay đổi những giả định an ninh đã tồn tại, trong khi kiểm toán thông thường chưa chắc nhận diện được các thay đổi như vậy.
Validator dừng đồng thuận để ngăn giao dịch tiếp diễn
Sau khi xác định vấn đề nằm ở lớp thực thi giao dịch thay vì một ứng dụng riêng lẻ, các validator Radix đã phối hợp hành động và chủ động đưa một lượng stake đủ lớn ra khỏi mạng nhằm ngăn hệ thống tiếp tục đạt đồng thuận và xử lý thêm giao dịch.
Mạng bị đình chỉ hơn 10 ngày. Bản vá giao thức bổ sung các bước kiểm tra mới, ngăn việc sử dụng những tham chiếu vault bị giới hạn trong các lệnh rút tiền thông thường. Theo dữ liệu sổ cái do cộng đồng tái dựng, giao dịch của người dùng được khôi phục vào ngày 11/9.
Sự cố cũng gây ra tổn thất tiếp theo tại các pool thanh khoản. Sau khi kẻ tấn công rút tài sản xuyên chuỗi khỏi một phía của một số cặp giao dịch, tỷ lệ giá trong các pool liên quan bị bóp méo. Một tài khoản khác đã tận dụng bất thường về giá để rút hàng triệu XRD khỏi các pool thanh khoản bị ảnh hưởng. Diễn biến này cho thấy ngay cả khi tài sản bị đánh cắp ban đầu đã rời khỏi mạng, lỗ hổng tại lớp thực thi vẫn có thể tiếp tục tạo ra thiệt hại kinh tế thông qua biến động giá và thay đổi thanh khoản.
Radix mở rộng kiểm thử hồi quy và cơ chế ứng phó khẩn cấp
Radix Foundation cho biết các biện pháp tiếp theo gồm tăng cường kiểm thử hồi quy, củng cố quy trình kiểm tra an ninh và chính thức hóa các thao tác khẩn cấp mà validator có thể thực hiện để khôi phục an toàn cho mạng. Trọng tâm của bản sửa lỗi không chỉ là đóng đường dẫn mã đã bị khai thác, mà còn rà soát lại toàn bộ thay đổi liên quan đến logic phân quyền.
Foundation cũng cho biết công tác an ninh trong tương lai cần tính đến năng lực ngày càng tăng của các công cụ phân tích mã có hỗ trợ AI, đồng thời nhận định những công cụ này có thể giúp kẻ tấn công xác định các lỗi đã tồn tại nhiều năm. Tuy vậy, các thông tin được công bố hiện chưa xác nhận kẻ tấn công đã sử dụng công cụ cụ thể nào.
Với các nhà phát triển và validator, trọng tâm sắp tới là ngăn việc bảo trì thông thường làm thay đổi mô hình phân quyền khi chưa được kiểm thử và rà soát đầy đủ. Đối với người dùng và nhà cung cấp thanh khoản, khả năng mạng tiếp tục thực hiện chính xác bước kiểm tra quyền sở hữu vault, cùng việc các quy trình ứng phó mới có được kích hoạt kịp thời trong sự cố tương tự hay không, sẽ là những yếu tố trực tiếp liên quan đến an toàn tài sản Radix và tính ổn định của mạng.