Hai năm sau vụ sập FTX, thị trường tăng nóng trở lại. Những dự án ICO mới mọc lên như nấm sau mưa, mỗi ngày một token mới, mỗi ngày một câu chuyện "cách mạng". Nhưng khi tôi ngồi xuống đọc mã nguồn của dự án "DeFi Thần Tốc" – vừa huy động 50 triệu USD từ các quỹ đầu tư lớn – tôi chỉ thấy một điều: lỗ hổng giống hệt những gì tôi đã phát hiện trong hợp đồng EOS năm 2017. Lịch sử không lặp lại, nhưng nó thường vần điệu. Và trong crypto, vần điệu đó là một hợp đồng thông minh được viết vội vàng, thiếu kiểm toán, với logic token swap có thể khiến nhà đầu tư mất trắng.

Bối cảnh: ICO mới, vấn đề cũ
Hãy nói về "DeFi Thần Tốc" (tạm gọi là DST). Dự án này là một AMM cross-chain, hứa hẹn tốc độ giao dịch dưới 1 giây nhờ sử dụng công nghệ optimistic rollup kết hợp với liquidity pool tập trung. Họ phát hành token DST qua một đợt ICO kéo dài 30 ngày, với cơ chế swap ERC-20 để đổi ETH lấy DST. Nghe có vẻ hiện đại. Nhưng khi tôi mở hợp đồng token của họ trên Etherscan, tôi thấy ngay một cấu trúc quen thuộc: hàm swap() được viết theo mẫu của Uniswap V1, với một tham số deadline không được kiểm tra chặt chẽ. Đây chính là lỗ hổng mà tôi đã báo cáo cho đội ngũ EOS năm 2017, và họ chỉ xác nhận 3 trên 7 vấn đề. Bảy năm sau, nó vẫn xuất hiện.

Phân tích kỹ thuật: Mổ xẻ hàm `swap()`
Tôi sẽ đi vào chi tiết, vì tôi biết nhiều người trông có vẻ giỏi thực ra cũng cần điều này. Hợp đồng DST sử dụng một mapping balances và một mapping allowances tiêu chuẩn ERC-20. Hàm swap() cho phép người dùng gửi ETH và nhận lại DST dựa trên tỷ giá được tính từ cặp reserve0 và reserve1 (giống Uniswap V1). Vấn đề nằm ở dòng 247: