Slyqf6

Mỗi bản nâng cấp là một cánh cửa cho lỗ hổng mới: Case study storage collision trong proxy upgrade

Bùi Vĩnh
Ethereum

Hook

Trong 48 giờ qua, một giao thức DeFi top 20 đã âm thầm vá lỗ hổng critical sau khi tôi gửi private report. Lỗi? Không phải reentrancy hay oracle manipulation. Chỉ đơn giản là một biến uint256 bị ghi đè bởi biến address trong quá trình nâng cấp proxy. Hậu quả: kẻ tấn công có thể chuyển toàn bộ số dư của pool thanh khoản sang ví mình. Tôi không ngạc nhiên. Mỗi bản nâng cấp là một cánh cửa cho lỗ hổng mới.

Mỗi bản nâng cấp là một cánh cửa cho lỗ hổng mới: Case study storage collision trong proxy upgrade

Context

Cơ chế proxy (EIP-1967, UUPS, hoặc Transparent Proxy) cho phép các dự án nâng cấp logic hợp đồng mà không thay đổi địa chỉ contract. Điều này tiện lợi, nhưng giống như sửa nhà khi đang ở: bạn dễ đóng đinh vào dây điện. Trong Ethereum, storage của hợp đồng được quản lý theo vị trí (slot). Proxy giữ storage cố định, trong khi implementation contract mới có thể có bố cục biến khác. Nếu slot của biến logic mới trùng với slot của biến logic cũ nhưng kiểu dữ liệu khác, storage sẽ bị hỏng. Đây gọi là storage collision.

Khung bảo mật của OpenZeppelin đã cảnh báo điều này từ năm 2020. Nhưng thực tế, tôi vẫn thấy lỗi này trong audit mỗi quý. Lý do: đội ngũ phát triển thường thêm biến mới vào giữa thay vì cuối struct, hoặc không dùng storage gap. Họ nghĩ rằng nâng cấp là an toàn vì có audit. Sai. Audit không kiểm tra toàn bộ lịch sử upgrade.

Core

Tôi phân tích một case thực tế: Giao thức X v1.0 có contract LogicV1 với storage: - Slot 0: address public owner - Slot 1: uint256 public totalSupply Khi nâng cấp lên v2.0, họ muốn thêm mapping balances. Họ viết:

Mỗi bản nâng cấp là một cánh cửa cho lỗ hổng mới: Case study storage collision trong proxy upgrade

Giá thị trường

Tiền điện tử Giá 24h
BTC Bitcoin
$64,785.1 +1.81%
ETH Ethereum
$1,921.96 +1.78%
SOL Solana
$74.5 +1.98%
BNB BNB Chain
$592.9 +4.33%
XRP XRP Ledger
$1.09 +1.60%
DOGE Dogecoin
$0.0706 +1.38%
ADA Cardano
$0.1705 +4.73%
AVAX Avalanche
$6.46 +1.56%
DOT Polkadot
$0.7746 +1.91%
LINK Chainlink
$8.46 +2.67%

Sợ & Tham

28

Sợ hãi

Tâm lý thị trường

Lịch sự kiện blockchain

{{年份}}
28
03
unlock Mở khóa token Arbitrum

Giải phóng 92 triệu ARB

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

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

22
03
unlock Mở khóa Optimism

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

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

12
05
halving BCH Halving

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

08
04
upgrade Solana Firedancer

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

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

Tất cả →
1
Bitcoin
BTC
$64,785.1
1
Ethereum
ETH
$1,921.96
1
Solana
SOL
$74.5
1
BNB Chain
BNB
$592.9
1
XRP Ledger
XRP
$1.09
1
Dogecoin
DOGE
$0.0706
1
Cardano
ADA
$0.1705
1
Avalanche
AVAX
$6.46
1
Polkadot
DOT
$0.7746
1
Chainlink
LINK
$8.46

🧮 Công cụ

Tất cả →

Chỉ số mùa altcoin

43

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

🐋 Theo dõi cá voi

🔵
0xbb92...ec2f
3 giờ trước
Stake
4,820,940 USDT
🔵
0x67cd...6bf7
30 phút trước
Stake
43,801 SOL
🔵
0xf9e7...c1a2
3 giờ trước
Stake
2,704.02 BTC

💡 Smart Money

0x5a72...8ce6
Bot chênh lệch giá
+$1.3M
82%
0x9f03...6bb5
Ví lưu ký tổ chức
-$4.3M
81%
0xa38b...229d
Nhà đầu tư sớm
+$0.3M
81%