Giao thức cho vay phi tập trung Term Finance đã mất 8,5 triệu USD do bị khai thác cơ chế quản trị, trong khi các hợp đồng thông minh không bị hack. Kẻ tấn công đã lợi dụng đặc điểm của hệ thống bỏ phiếu trong các Meta Vaults và rút tiền thông qua một đề xuất hợp pháp, được thông qua nhờ tỷ lệ tham gia cực kỳ thấp của những người nắm giữ token. Nhóm phát triển Term Labs đã xác nhận sự cố và thông báo về việc đóng cửa vĩnh viễn tất cả Meta Vaults cùng với việc thu hồi các vai trò DAO, trong khi giao thức cơ bản và các thị trường cho vay trực tiếp vẫn không bị ảnh hưởng.
Cơ chế chiếm quyền kiểm soát bỏ phiếu
Thành công của cuộc tấn công có thể xảy ra do sự không phù hợp giữa việc tham gia kinh tế và quyền bỏ phiếu trong hệ sinh thái của giao thức. Khi gửi tiền vào vault, người dùng nhận được token biên nhận tmvETH, xác nhận phần sở hữu trong pool, nhưng bản thân tài sản này không cấp quyền tham gia quản trị. Để có được quyền bỏ phiếu, biên nhận phải được chuyển đổi riêng biệt thành token bỏ phiếu đặc biệt gtmvETH, tuy nhiên hầu hết người gửi tiền đã bỏ qua hành động này. Kẻ xấu chỉ gửi 0,5 $ETH, nhận được 0,485 tmvETH và bọc chúng thành token bỏ phiếu. Tỷ lệ sở hữu thực tế của hắn trong vốn của vault chỉ là 0,017%, nhưng trong số các lá phiếu được phát hành, hắn kiểm soát 90,66% phiếu bầu.
Các quy tắc quản trị cũng góp phần thực hiện khai thác lỗ hổng. Bất kỳ người dùng nào cũng có thể tạo đề xuất ngay cả khi không có phiếu bầu, và để đạt được số biểu quyết tối thiểu chỉ cần sự tham gia của 5% tổng số lá phiếu được phát hành. Để thông qua quyết định chỉ cần đa số đơn giản. Sau khi thắng cuộc bỏ phiếu, kẻ tấn công đã đề xuất tắt thời gian trễ bảy ngày để rút tiền, kết nối hợp đồng của riêng mình và chuyển tài sản của người gửi tiền đến đó. Đề xuất, chứa 17 hành động, đã ở trong trạng thái công khai trên blockchain khoảng 145 giờ. Gần sáu ngày trong sổ cái công khai về cơ bản đã đăng thông báo về việc sắp tắt các cơ chế bảo vệ và rút tiền, nhưng không ai tận dụng cơ hội để phủ quyết hoặc tranh chấp quyết định.
Biên niên sử rút tiền và phản ứng của nhóm
Cuộc bỏ phiếu kết thúc vào ngày 23 tháng 8 năm 2026, và chỉ 12 giây sau khi cửa sổ đóng, hàm executeProposal đã được thực thi. Hành động đầu tiên của đề xuất là đặt thời gian trễ bảy ngày (timelock) về 0, cho phép rút ngay lập tức tài sản từ các subvault Shorewoods $ETH, August Digital $ETH, Parity Prime $ETH và Parity Core $ETH. Số tiền đã được chuyển thông qua chiến lược "Fixed Recipient WETH Exit Strategy" được thêm vào đặc biệt đến địa chỉ của kẻ tấn công. Tổng cộng 2.841 WETH đã được rút. Sau đó, các hoạt động tương tự đã diễn ra tại năm vault $USDC, từ đó 1.679.639 đồng tiền đã bị rút. Tất cả số tiền được hợp nhất trên một ví.
Các nhà phân tích PeckShield ước tính tổng thiệt hại khoảng 8,5 triệu USD, bao gồm khoảng 2.843 $ETH (khoảng 6,87 triệu USD) và 1,68 triệu $USDC, sau đó đã được đổi thành DAI. Kinh phí ban đầu cho cuộc tấn công được thực hiện thông qua Tornado Cash: ví của kẻ tấn công đã nhận được 1 $ETH từ máy trộn này vào ngày 17 tháng 8 năm 2026. Sau khi xác nhận sự cố, nhóm Term Labs tuyên bố rằng tất cả các vai trò quản trị DAO đã bị thu hồi, và việc đóng cửa Meta Vaults là không thể đảo ngược và chặn các khoản tiền gửi mới. Tuy nhiên, việc rút tiền cho người dùng vẫn mở. Các nhà phát triển cơ sở hạ tầng Yearn V3, trên đó các vault được xây dựng, đã lưu ý riêng rằng vector tấn công chỉ liên quan đến lớp vỏ tùy chỉnh của Term và không ảnh hưởng đến các sản phẩm tiêu chuẩn của Yearn.
Lỗ hổng hệ thống của quản trị phi tập trung
Sự cố cho thấy những rủi ro quan trọng phát sinh khi kết hợp ngưỡng tham gia quản trị thấp và thiếu hoạt động bắt buộc từ các bên liên quan. Số biểu quyết tối thiểu và các giá trị ngưỡng cho phép hầu hết bất kỳ người tham gia nào tạo đề xuất, và khi những người nắm giữ LP token thụ động, quyền kiểm soát các lá phiếu được phát hành chuyển sang một phần vốn tối thiểu. Các cơ chế an ninh, như thời gian trễ và quyền phủ quyết, đã tỏ ra không hiệu quả vì kẻ tấn công có khả năng kỹ thuật để tắt bảo vệ từ bên trong chính đề xuất trước khi nó được thực thi. Theo dữ liệu phân tích on-chain, được các chuyên gia nghiên cứu chi tiết, đề xuất đã ở trạng thái công khai khoảng sáu ngày, và lá phiếu duy nhất được bỏ bởi chính kẻ tấn công.
Trước sự cố, tổng khối lượng tiền bị khóa (TVL) trong các vault của Term Finance là khoảng 12,45 triệu USD, trong đó khoảng 8,8 triệu USD thuộc về mạng Ethereum. Số tiền bị rút tương ứng với khoảng 68% TVL của sản phẩm này. Tình hình chỉ ra sự cần thiết phải xem xét lại kiến trúc quản trị trong các giao thức DeFi, nơi quyền bỏ phiếu tự động được gắn với sự tham gia kinh tế, và các thông số số biểu quyết tối thiểu và thời gian trễ được bảo vệ khỏi việc sửa đổi trong khuôn khổ các đề xuất thông thường. Trạng thái hiện tại của giao thức giả định duy trì chức năng của các thị trường cho vay cơ bản trong khi ngừng hoàn toàn phân khúc Meta Vaults.
Vụ hack Term Finance thông qua cơ chế bỏ phiếu đã phát hiện ra các vấn đề cơ bản trong thiết kế hệ thống quản trị với tỷ lệ tham gia thấp và quyền bỏ phiếu có thể tách rời. Việc rút 68% TVL của sản phẩm thông qua một thủ tục hợp pháp nhấn mạnh rằng tính chính xác hình thức của việc thực thi hợp đồng thông minh không đảm bảo an toàn tài sản khi có sai sót kiến trúc trong logic ra quyết định.
Quan điểm của AI
Tình huống thể hiện vấn đề kinh điển về "số biểu quyết tối thiểu trống rỗng", khi hoạt động tối thiểu được hệ thống diễn giải như một sự đồng thuận hợp pháp. Thống kê xác nhận rằng trong mười năm qua, tin tặc đã đánh cắp hơn 17 tỷ USD, và nguyên nhân chính của tổn thất không phải là lỗ hổng mã, mà là sự xâm phạm khóa và logic quản trị. Kiến trúc kỹ thuật của các giao thức thường cho phép thay đổi các thông số bảo mật bằng chính cơ chế vốn dĩ nên bảo vệ các thông số đó.
Máy móc thấy ở đây không phải là lỗi mã, mà là hệ quả tất yếu của thiết kế, nơi sự im lặng của đa số được coi là đồng ý. Liệu các hệ thống phi tập trung có nên áp dụng các hạn chế hiến pháp cứng nhắc về việc thay đổi các quy tắc an ninh cơ bản, ngay cả khi điều này mâu thuẫn với ý tưởng về chủ quyền hoàn toàn của cộng đồng?
end-content




