资产价格暂时延迟部分资产已停止接收最新价格数据。数据连接恢复后将自动恢复更新。
Bitculator

在 Android 上获取 Bitculator

市值:

$1,993,178,180,086

24小时成交量:

$198,583,650,129

6 23 清算:

$0

24小时 多头/空头:

即将推出

Bitculator · 学习

Integer Overflow Attack

在加密术语中,Integer Overflow Attack 是什么意思?

# 400·更新时间 6月 2026·1 分钟阅读

一个 Integer Overflow Attack 发生在数学运算的结果产生一个超出系统处理能力的数字时,导致它“溢出”,并可能造成漏洞。

什么是 Integer Overflow Attack?

Integer Overflow Attack 发生在程序的数值达到最大值然后回绕到最小值,从而让攻击者可以篡改余额或限制。在加密领域,这种回绕可以把像“你有足够的代币吗?”的检查从原本应该为否的情况变成是。想象一下老式里程表从 999999 翻到 000000,但赌注是金钱。


误区

“现代编译器会阻止这类事情发生。”不尽然。许多 智能合约 在某些地方仍然使用未检查的算术、自定义数学函数或汇编代码,这些都可能重新引入溢出漏洞。


Integer Overflow Attack 如何运作

下面用一个代币合约作示范,快速说明流程。

  • 步骤 1:合约用定长整数存储余额,并提供一个用于相加、相减或相乘金额的函数。
  • 步骤 2:攻击者选择会把数值推过最大值的输入,导致回绕到很小或接近零的值。
  • 步骤 3:这种回绕会颠倒某个检查。例如:回绕后余额看起来很大,或转账限制看起来很小,于是 require 通过。
  • 步骤 4:攻击者铸造了不应得的代币,绕过了上限,或转移了他们本不该能动用的资金。
  • 步骤 5:他们通过交易或桥接把收益洗掉,然后在被发现前离开。

真实案例:曾有多个 ERC 20 代币出现批量溢出漏洞,攻击者借此铸造出荒谬的供应量,然後在交易所抛售。确实发生过。


为什么 Integer Overflow Attack 很重要

如果你持有代币、开发应用或在 DeFi 交易,你应该在意。这关乎数字,而数字掌控加密系统。

  • 好处:了解其运作方式能帮你及早发现危险信号,保护资金。
  • 观点:算术类漏洞长期存在。新链和新工具层出不穷,但数学错误仍然会被攻击者利用。
  • 相关性:你会在代币供应计算、奖励系统、NFT 计数器以及常见的 去中心化应用 中看到它们,这些系统会处理用户余额。

提示

在 Solidity 中,默认保持算术检查,並把 unchecked 块控制到最小并审计。加入模糊测试,尝试极端数值,而不只是常规路径。


Integer Overflow Attack 的关键特征

与其他漏洞不同之处:

  • 回绕:数值从最大值跳回零,就像循环计数器。
  • 无声发生:如果算术未被检查,没有内置错误,失败结果看起来像正常输出。
  • 可触发:通常用户可控的输入可以促成恰好发生回绕的时刻。
  • 可重复:一旦找到,攻击者可以脚本化并在多个目标上重复利用。

变体

主要的几种形式,同一家族、不同路径:

  1. 下溢:相减低於零並回绕到很大的值。
  2. 相加:对余额或供应相加使其超过最大值然后回到小数值。
  3. 相乘:奖励乘数或缩放因子把值推过限制。
  4. 计数器:代币 ID 或供应计数器翻滚,允许在达到上限后继续铸造。

提醒

Integer Overflow Attack 不只出現在 Solidity。它也可能在 Vyper、Rust、Move 或自定义汇编中出现,许多公开的 漏洞利用 本质上都是围绕余额或供应的未检查算术。


示例

一个奖励函数把用户提供的数乘以大的加成,数值回绕,限制检查通过,Integer Overflow Attack 让攻击者铸造远超预期的代币。


趣闻

街机经典游戏在第 256 关的崩溃?那个臭名昭著的冻结来源於整数溢出,证明即使复古游戏也会无意中出现类似加密的漏洞。


总结

把 Integer Overflow Attack 想像成数值跑了一个完整圈,攻击者从缝隙中冲出来;保持算术检查,你会更安心。

我们是否遗漏了什么??

您的反馈有助于我们保持信息的准确性。如果发现任何错误或遗漏,请联系我们。

联系我们