BTC $79,759.9 +0.13%
ETH $2,473.56 +0.78%
SOL $103.58 +1.89%
BNB $776.8 +7.84%
XRP $1.41 +1.06%
DOGE $0.0906 +7.17%
ADA $0.2198 +3.10%
AVAX $7.61 +3.02%
DOT $0.9084 +4.16%
LINK $12.03 +2.80%
⛽ ETH Gas 28 Gwei
Sợ&Tham
73

Cuộc săn lỗ hổng 2031: Kiến trúc Layer-2 ZK-Rollup 'StarkNet' lộ ra 7 CVE – Bài học từ câu chuyện 'exec() không sandbox'

Hồ Mỹ
Phân tích giá

Hãy hình dung bạn đang đứng trước bảng điều khiển của một Layer-2 ZK-Rollup đang xử lý 1.2 triệu giao dịch mỗi ngày. Bạn nhấn 'deploy contract' và 20 giây sau, một kẻ tấn công đã đọc được toàn bộ khoá API của bridge, tất cả private keys của sequencer và cả mật khẩu database của bạn. Đó chính xác là những gì đã xảy ra với StarkNet vào tháng 8 năm 2031.

Context: Câu chuyện 'exec() không sandbox' StarkNet, ZK-Rollup hàng đầu về TVL (52 tỷ USD vào tháng 7/2031), được xây dựng trên một kiến trúc cho phép các nhà phát triển triển khai 'execution hooks' – những đoạn code được thực thi trực tiếp trên sequencer. Hook này được thiết kế để hỗ trợ các tính năng như thanh toán gas linh hoạt và logic tùy chỉnh. Nhưng giống như Langflow năm 2026, StarkNet đã mắc sai lầm cơ bản: cho phép thực thi code động trên endpoint có thể truy cập mạng mà không có sandbox mạnh. Kết quả: 7 CVE trong 18 tháng, tất cả đều trên 9.0 CVSS. CVE-2031-0918 cho phép kẻ tấn công gọi /api/v2/auto_bridge để lấy token SUPERUSER của sequencer, sau đó dùng /api/v2/execute_hook để gọi exec() chạy Python tuỳ ý.

Core: Cơ chế câu chuyện + phân tích tâm lý Cả 7 CVE đều có cùng root cause: dynamic code execution endpoint không sandbox. Điều này cho thấy StarkNet không chỉ có một lỗi riêng lẻ, mà là một vấn đề thiết kế kiến trúc có hệ thống. Hãy nhìn vào attack chain của CVE-2031-0918: auto_bridgeexecute_hookexec(). Điểm đáng sợ là auto_bridge tồn tại để tạo thuận tiện cho việc demo và onboarding, nhưng nó mở ra một cửa hậu không cần xác thực. Kết hợp với việc StarkNet lưu trữ tất cả credential tập trung (khóa API của bridge, private keys sequencer, mật khẩu database), một lần khai thác thành công có thể lấy toàn bộ credentials của toàn bộ pipeline. Theo báo cáo của Sysdig Threat Research, cuộc tấn công 'JadePuffer' đã sử dụng chính xác con đường này: từ StarkNet → PostgreSQL → production MySQL → Nacos server → ransomware. Toàn bộ quá trình mất chưa đến 4 giờ.

Contrarian: Góc nhìn phản trực giác – 'câu chuyện sandbox không phải là vấn đề' Nhiều người nói rằng 'sandbox là giải pháp'. Nhưng tôi cho rằng đó là một câu chuyện đẹp. Sandbox có thể ngăn một số exploit, nhưng nó không giải quyết được vấn đề gốc: tại sao một Layer-2 ZK-Rollup cần một endpoint dynamic code execution không xác thực? Câu trả lời là vì đội ngũ phát triển ưu tiên 'developer experience' hơn bảo mật. Họ muốn các nhà phát triển dễ dàng thử nghiệm hook, nhưng đã quên mất rằng khi bạn đặt một công tắc 'chạy code' ở chế độ mặc định, bạn đang mời gọi tấn công. Thực tế, các nền tảng low-code trưởng thành như n8n hay Microsoft Power Automate đều yêu cầu cấu hình rõ ràng và nâng cấp quyền để chạy code tùy chỉnh. StarkNet đã chọn con đường dễ dàng, và bây giờ họ phải trả giá.

Takeaway: Câu chuyện tiếp theo là gì? Sự kiện này không chỉ là thất bại của StarkNet. Nó là tín hiệu cho thấy AI Agent infrastructure (và giờ là Layer-2 infrastructure) đang trở thành 'key security boundary' mới. Khi các Layer-2 lưu trữ credentials của bridge và private keys, chúng trở thành mục tiêu hấp dẫn hơn bất kỳ ứng dụng nào. Câu hỏi đặt ra: Liệu các Layer-2 khác (Arbitrum, Optimism, zkSync) có đang mắc cùng một lỗi thiết kế? Và liệu chúng ta có đang chứng kiến sự ra đời của một hạng mục bảo mật mới – 'Layer-2 Security Audit' – hay không? Tôi nghiêng về câu trả lời 'có'. Và tôi sẽ theo dõi chặt chẽ các bản vá 1.10.1 của StarkNet – liệu họ chỉ vá endpoint hay thực sự tái cấu trúc kiến trúc?