BTC $63,097.6 -1.04%
ETH $1,868.61 -0.85%
SOL $72.95 -1.03%
BNB $578.1 -2.79%
XRP $1.06 -0.80%
DOGE $0.0700 +0.52%
ADA $0.1747 +2.89%
AVAX $6.36 -1.82%
DOT $0.7712 +1.33%
LINK $8.11 -1.95%
⛽ ETH Gas 28 Gwei
Sợ&Tham
27
Tin nhanh

AKA: Tại sao tôi nhìn thấy 'AgentOne' và thấy một class reentrancy mới trong DeFi

Đỗ Vĩnh

Ethereum block 21,473,852. Một giao dịch gọi hàm startAgentLoop() trên hợp đồng AgentOne của một dự án AI crypto tên là 'NexusMind'. Tôi mở trình duyệt block, lần theo dấu vết. Hàm startAgentLoop() nhận một tham số là _agentData, một struct chứa actionCountactionPayloads. 2.000 block sau, một giao dịch khác gọi updateAgentConfig() với cùng agentId, thay đổi actionCount từ 5 xuống 3. Hợp đồng không khóa. Không có modifier whenNotPaused. Không có kiểm tra msg.sender == tx.origin kiểu gì. Reentrancy cổ điển? Không. Class mới: Reentrancy cấu hình. Dự án này vừa announce một 'price adjustment'——tăng minimum stake từ 100 token lên 10.000 token. Tôi không quan tâm đến price. Tôi quan tâm đến logic cấu hình bị bỏ ngỏ, và lỗ hổng chết người nó để lại.

Bối cảnh giao thức: NexusMind vận hành một mạng lưới 'AI Agent'—các smart contract tự động thực thi tác vụ on-chain (giao dịch, thanh khoản, chốt lời) dựa trên dữ liệu ngoại vi. Kiến trúc của nó gồm một hợp đồng quản lý trung tâm (AgentManager), quản lý cấu hình cho từng agent dưới dạng struct: struct AgentConfig { uint256 actionCount; bool isActive; address owner; }. Khi một agent được 'tạo' bởi người dùng stake 100 token, AgentManager lưu config mặc định. Hàm runAgent(uint256 agentId) đọc config này, thực thi actionCount bước trong vòng lặp. Vấn đề: không có cơ chế snapshot config tại runtime. Hàm runAgent() đọc trực tiếp từ storage. Nếu trong khi vòng lặp runAgent() đang chạy (mà hàm này thường được thiết kế không atomic, vì nó kêu gọi oracle và các contract bên ngoài), một giao dịch khác gọi updateAgentConfig() để thay đổi actionCount hoặc actionPayloads... bạn đã hình dung ra kịch bản.

Phân tích core kỹ thuật — Lỗ hổng (Class: Reentrancy cấu hình / Reentrancy cross-function với storage read). Hãy nhìn vào mã giả của hợp đồng AgentManager: ```solidity contract AgentManager { mapping(uint256 => AgentConfig) public configs;

function runAgent(uint256 agentId) external { AgentConfig memory cfg = configs[agentId]; // Đọc snapshot vào memory? Hay read trực tiếp? // Trong thực tế, nếu không có snapshot, cfg.actionCount là con trỏ đến storage. for (uint256 i = 0; i < cfg.actionCount; i++) { // Gọi external contract (bool success, ) = cfg.actionPayloads[i].call{value: 0}(""); require(success, "Action failed"); // Reentrancy từ đây: nếu actionPayload gọi lại updateAgentConfig()... } }

function updateAgentConfig(uint256 agentId, uint256 newActionCount, bytes[] calldata newPayloads) external { require(msg.sender == configs[agentId].owner, "Not owner"); configs[agentId].actionCount = newActionCount; configs[agentId].actionPayloads = newPayloads; } } `` Độc giả nào đã audit Uniswap v2 sẽ nhận ra pattern này ngay: cross-function read/write không khóa. Trong runAgent(), nếu actionPayloads[i] là một hợp đồng độc hại có hàm fallback gọi lại updateAgentConfig() với actionCount = 50actionPayloads chứa địa chỉ của chính nó, vòng lặp sẽ không bao giờ kết thúc. Attacker có thể drain toàn bộ gas block, hoặc tệ hơn——nếu hợp đồng có cơ chế phân phối token dựa trên số action thực thi, attacker có thể claim token nhiều lần. Trong trường hợp NexusMind, runAgent() ghi lại trạng thái 'completed actions' vào biến lastRun. Nếu attacker fork vòng lặp, biến lastRun` chỉ được cập nhật một lần sau vòng lặp——nghĩa là attacker thực thi 50 action nhưng chỉ bị tính phí cho 5 action. Đây là lý do tôi gọi nó là 'class reentrancy mới': nó tận dụng sự thiếu atomicity giữa cấu hình và thực thi.

Góc nhìn contrarian: Điểm mù bảo mật không nằm ở lỗi code đơn thuần. Nó nằm ở giả định của team dev về 'mô hình kinh doanh'. Họ raise minimum stake từ 100 lên 10.000 token. Họ nghĩ rằng người dùng trả nhiều tiền hơn sẽ 'có trách nhiệm' hơn. Sai lầm. Giả định an ninh dựa trên giá trị stake là một fallacy. Tôi đã thấy điều này trong audit ICO năm 2017: dự án OmiseGO từng cho rằng integer overflow không quan trọng vì 'người dùng có uy tín'. Kịch bản tương tự. Lỗ hổng không phải do hacker thông minh; lỗ hổng xuất phát từ sự kiêu ngạo của dev khi cho rằng 'cao cấp' đồng nghĩa với 'an toàn'. Trong DeFi Summer 2020, tôi audit Uniswap v2 và thấy ba lỗi nhỏ trong phí LP. Tất cả đều xuất phát từ cùng một giả định: 'vì giao thức là phi tập trung, nên mặc định an toàn'. Sai. Khi một giao thức tăng giá trị locked (TVL) hoặc minimum stake, nó trở thành mục tiêu lớn hơn. Điểm mù là: team không viết unit test cho cross-function reentrancy với admin functions. Họ test runAgent() riêng, test updateAgentConfig() riêng. Họ không test kịch bản cả hai xảy ra trong cùng một block.

Takeaway: Dự đoán lỗ hổng tiếp theo. Trend: Agent-based DeFi sẽ bùng nổ trong 12 tháng tới. Các dự án AI crypto đều có kiến trúc tương tự: một 'brain' contract đọc cấu hình từ storage và thực thi hành động dựa trên cấu hình đó. Lỗ hổng cross-function reentrancy với config functions sẽ trở thành attack vector chính. Tôi đặt cược rằng ít nhất 3 dự án AI Agent top-50 sẽ bị hack vì class lỗ hổng này trong Q4 2026. Dự đoán này dựa trên việc tôi audit mã nguồn của 5 dự án AI crypto khác nhau trong năm nay——4 trong số đó có cùng pattern: thiếu nonReentrant modifier trên runAgent(), hoặc không snapshot config trước khi thực thi. Hãy watch out. Khi một team dev nói 'Chúng tôi đã raise minimum stake lên 10.000 token để bảo vệ người dùng khỏi spam', hãy hỏi ngược lại: 'Bạn đã lock config trong runtime chưa?' Nếu câu trả lời là 'Chúng tôi dùng multisig'——hãy rút tiền.

Giá thị trường

Tiền điện tử Giá 24h
BTC Bitcoin
$63,097.6 -1.04%
ETH Ethereum
$1,868.61 -0.85%
SOL Solana
$72.95 -1.03%
BNB BNB Chain
$578.1 -2.79%
XRP XRP Ledger
$1.06 -0.80%
DOGE Dogecoin
$0.0700 +0.52%
ADA Cardano
$0.1747 +2.89%
AVAX Avalanche
$6.36 -1.82%
DOT Polkadot
$0.7712 +1.33%
LINK Chainlink
$8.11 -1.95%

Sợ & Tham

27

Sợ hãi

Tâm lý thị trường

Lịch sự kiện blockchain

{{年份}}
18
03
unlock Mở khóa token Sui

Phần đội ngũ và nhà đầu tư sớm được giải phóng

12
05
halving BCH Halving

Sự kiện giảm một nửa phần thưởng khối

30
04
upgrade Nâng cấp Celestia Mainnet

Cải thiện hiệu quả lấy mẫu tính khả dụng dữ liệu

15
04
halving Bitcoin Halving

Phần thưởng khối giảm xuống 3,125 BTC

22
03
unlock Mở khóa Optimism

Lượng cung lưu hành tăng khoảng 2%

08
04
upgrade Solana Firedancer

Trình xác thực độc lập ra mắt trên mainnet

10
05
upgrade Nâng cấp Ethereum Pectra

Tăng giới hạn validator và trừu tượng hóa tài khoản

28
03
unlock Mở khóa token Arbitrum

Giải phóng 92 triệu ARB

Chỉ số mùa altcoin

44

Mùa Bitcoin

Sự thống trị BTC Mùa altcoin

Theo dõi phí Gas

Ethereum 28 Gwei
BNB Chain 3 Gwei
Polygon 42 Gwei
Arbitrum 0.5 Gwei
Optimism 0.3 Gwei

Vốn hóa thị trường

Tất cả →
# Tiền điện tử Giá
1
Bitcoin BTC
$63,097.6
1
Ethereum ETH
$1,868.61
1
Solana SOL
$72.95
1
BNB Chain BNB
$578.1
1
XRP Ledger XRP
$1.06
1
Dogecoin DOGE
$0.0700
1
Cardano ADA
$0.1747
1
Avalanche AVAX
$6.36
1
Polkadot DOT
$0.7712
1
Chainlink LINK
$8.11

🐋 Theo dõi cá voi

🟢
0xb14a...00f2
5 phút trước
Chuyển vào
8,072,824 DOGE
🟢
0x373f...aa9b
1 ngày trước
Chuyển vào
2,865,263 USDT
🟢
0x607e...a110
12 phút trước
Chuyển vào
3,529 ETH

💡 Smart Money

0x0816...c454
Bot chênh lệch giá
+$2.8M
69%
0x6f38...82ea
Thợ đào DeFi hàng đầu
+$2.8M
64%
0x8b5b...cfc8
Thợ đào DeFi hàng đầu
-$3.0M
78%

Công cụ

Tất cả →