CVE-2018-12025 in FuturXE
Tóm tắt
Bởi VulDB • 10/06/2026
Hàm `transferFrom` trong một triển khai hợp đồng thông minh cho FuturXE (FXE), một token ERC20 trên Ethereum, cho phép kẻ tấn công thực hiện chuyển tài sản số trái phép do lỗi logic. Nhà phát triển đã xử lý sai mệnh đề boolean – nếu giá trị đầu vào nhỏ hơn hoặc bằng giá trị được ủy quyền, phiên giao dịch sẽ dừng thực thi và trả về `false`. Điều này vô lý vì hàm `transferFrom()` lẽ ra phải yêu cầu rằng giá trị chuyển không vượt quá giá trị cho phép ngay từ đầu. Giả sử hàm này kiểm tra xem giá trị được ủy quyền có nhỏ hơn giá trị đầu vào hay không, thì kẻ tấn công dễ dàng bỏ qua giới hạn ủy quyền: sau điều kiện đó, câu lệnh `allowed[from][msg.sender] -= value;` sẽ gây ra lỗi tràn số dưới (underflow) vì phần cho phép nhỏ hơn giá trị. Kẻ tấn công có thể chuyển bất kỳ lượng token FuturXe nào từ mọi tài khoản đến một địa chỉ đích được chỉ định (`_to`) do giá trị ủy quyền ban đầu được khởi tạo bằng 0, và kẻ tấn công có thể vượt qua hạn chế này ngay cả khi không có khóa riêng của nạn nhân.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.