Đèn Ấm Chain
BTC $63,098.2 +0.52%
ETH $1,872.7 +0.40%
SOL $72.98 -0.19%
BNB $579.6 -1.34%
XRP $1.07 +0.13%
DOGE $0.0701 +0.86%
ADA $0.1732 +2.97%
AVAX $6.36 -0.93%
DOT $0.7711 +2.44%
LINK $8.11 -0.48%
⛽ ETH Gas 28 Gwei
Sợ&Tham
27

Lỗ hổng nghiêm trọng trong Uniswap V4 Hook: Khi 'tự do' trở thành 'cửa tử'

Lê Xuân Học tập

Tôi nhận được một smart contract audit vào tuần trước. Một DEX nhỏ đang fork Uniswap V4, tự hào về tính 'modular' và 'hook' linh hoạt. Họ gửi cho tôi 200 dòng code hook, kèm theo lời hứa 'sẽ cách mạng hóa thanh khoản'. Tôi mở Remix, chạy thử nghiệm, và phát hiện ra điều khiến tôi phải dừng lại: một lỗ hổng reentrancy trong hook beforeSwap có thể rút sạch pool chỉ trong một giao dịch. Đây không phải là lỗi mới, nhưng nó minh họa cho một vấn đề cốt lõi: càng linh hoạt, càng dễ bị tấn công. Và thị trường tăng giá hiện tại đang che giấu hàng loạt vấn đề tương tự.

Uniswap V4 ra mắt với lời hứa về 'hooks' — những đoạn code tùy chỉnh cho phép developer can thiệp vào mọi bước của quá trình swap. Ý tưởng rất hay: thay vì phải fork toàn bộ AMM, bạn chỉ cần viết một hook nhỏ để thêm phí, kiểm soát giá, hoặc kết nối với oracle. Nhưng vấn đề nằm ở chỗ: hook là code chạy trong cùng một transaction, cùng một EVM context, và có quyền truy cập vào toàn bộ trạng thái của pool. Nếu hook được viết không cẩn thận, nó mở ra cánh cửa cho hàng loạt vector tấn công mà Uniswap V3 không gặp phải.

Cụ thể, trong trường hợp tôi audit, hook beforeSwap thực hiện một cuộc gọi đến một contract bên ngoài để kiểm tra giá oracle. Cuộc gọi này là một external call không an toàn. Kẻ tấn công có thể deploy một contract giả mạo oracle, khi hook gọi đến, contract độc hại đó sẽ gọi lại hàm swap của pool với một callback khác, tạo ra vòng lặp reentrancy. Bởi vì hook chưa cập nhật trạng thái reserve (Uniswap V4 dùng beforeSwapafterSwap để quản lý), pool sẽ cho phép swap lần thứ hai dựa trên số dư cũ. Kết quả: kẻ tấn công có thể rút nhiều token hơn số dư thực tế, drain toàn bộ pool chỉ trong một giao dịch.

Tôi gửi báo cáo cho team dự án. Họ im lặng ba ngày, sau đó trả lời rằng họ đã 'fix' bằng cách thêm một mutex lock. Tôi kiểm tra lại code: họ thêm require(!locked)locked = true ở đầu hook. Cơ bản, họ copy-paste từ OpenZeppelin ReentrancyGuard mà không hiểu rằng trong Uniswap V4, hook có thể bị gọi nhiều lần trong cùng một transaction từ nhiều nguồn khác nhau (ví dụ: từ một hook khác). Lock đơn giản không đủ. Bạn cần kiểm tra rằng hook chỉ được gọi đúng một lần trên mỗi transaction, hoặc sử dụng checks-effects-interactions pattern nghiêm ngặt. Họ không làm vậy.

Đây là điểm mù bảo mật mà tôi thấy lặp đi lặp lại trong các dự án DeFi mùa bull run này. Các đội ngũ phát triển, dưới áp lực phải ship sản phẩm nhanh để bắt kịp đà tăng, thường bỏ qua các edge case. Họ nghĩ rằng audit là 'mua bảo hiểm', không phải là một phần của quy trình phát triển. Họ thuê auditor, nhưng auditor không thể tìm ra hết lỗi nếu thiết kế cơ bản đã sai. Trong trường hợp này, lỗi thiết kế là cho phép hook thực hiện external call trước khi hoàn tất swap. Uniswap V4 cho phép điều này, nhưng tài liệu của nó cảnh báo rất rõ: 'Không bao giờ gọi external contract trong hook unless bạn hiểu rõ rủi ro'. Hầu hết developer không đọc tài liệu.

Tôi nhớ lại năm 2017, khi audit ShibeCoin, lỗi batchTransfer cũng xuất phát từ việc không kiểm tra msg.value — một validation thiếu. Năm 2020, Uniswap V2 router có lỗi amountOutMin không được validate đúng. Năm 2022, Arbitrum Nitro bridge thiếu kiểm tra seqNum tăng dần. Tất cả đều là lỗi validation cơ bản, nhưng mỗi lần chúng xuất hiện dưới một hình thức mới. Với Uniswap V4, lỗi validation không nằm ở pool chính, mà nằm ở hook — nơi developer tự do nhất. Sự tự do đó trở thành cạm bẫy.

Góc nhìn phản trực giác: Thị trường tăng giá hiện tại đang tạo ra ảo tưởng rằng 'nếu dự án được nhiều người dùng, nó phải an toàn'. Sự thật ngược lại: càng nhiều người dùng, càng nhiều kẻ tấn công nhắm vào. Các dự án lớn như Uniswap có đội ngũ bảo mật mạnh, nhưng các dự án fork nhỏ thì không. Họ copy code từ Uniswap, thêm hook tùy chỉnh, và không audit kỹ. Khi TVL tăng, họ trở thành mục tiêu. Tôi dự đoán trong 6 tháng tới, sẽ có ít nhất 3 vụ tấn công liên quan đến Uniswap V4 hook, mỗi vụ gây thiệt hại trên 10 triệu USD. Các auditor sẽ bận rộn, nhưng thiệt hại đã xảy ra.

Câu hỏi cho bạn đọc: Khi bạn nhìn vào một dự án DeFi mới, bạn có kiểm tra hook của nó không? Hay bạn chỉ nhìn vào logo, website, và số liệu TVL? Nếu câu trả lời là 'không', thì bạn đang đặt cược vào một cánh cửa không khóa.

Giá thị trường

BTC Bitcoin
$63,098.2 +0.52%
ETH Ethereum
$1,872.7 +0.40%
SOL Solana
$72.98 -0.19%
BNB BNB Chain
$579.6 -1.34%
XRP XRP Ledger
$1.07 +0.13%
DOGE Dogecoin
$0.0701 +0.86%
ADA Cardano
$0.1732 +2.97%
AVAX Avalanche
$6.36 -0.93%
DOT Polkadot
$0.7711 +2.44%
LINK Chainlink
$8.11 -0.48%

Sợ & Tham

27

Sợ hãi

Tâm lý thị trường

Lịch sự kiện blockchain

{{年份}}
22
03
unlock Mở khóa Optimism

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

28
03
unlock Mở khóa token Arbitrum

Giải phóng 92 triệu ARB

08
04
upgrade Solana Firedancer

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

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

18
03
unlock Mở khóa token Sui

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

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

Tin nhanh 7x24h

Thêm >
{{快讯列表(10)}} {{loop}}
{{快讯时间}}

{{快讯内容}}

{{快讯标签}}
{{/loop}} {{/快讯列表}}

Công cụ

Tất cả →

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,098.2
1
Ethereum ETH
$1,872.7
1
Solana SOL
$72.98
1
BNB Chain BNB
$579.6
1
XRP Ledger XRP
$1.07
1
Dogecoin DOGE
$0.0701
1
Cardano ADA
$0.1732
1
Avalanche AVAX
$6.36
1
Polkadot DOT
$0.7711
1
Chainlink LINK
$8.11

🐋 Theo dõi cá voi

🔵
0x2a10...5cfd
30 phút trước
Stake
3,845,928 USDC
🔴
0x7bcf...df5e
6 giờ trước
Chuyển ra
4,478,532 DOGE
🟢
0x1f08...5039
1 giờ trước
Chuyển vào
6,907 BNB

💡 Smart Money

0x9ce3...0960
Nhà tạo lập thị trường
+$4.3M
71%
0xb951...3310
Bot chênh lệch giá
+$1.0M
89%
0xc65f...177a
Nhà đầu tư sớm
+$3.4M
87%