一签 19 种 token · 23 分钟 11.4 万美元

这一则按真实手法合成,Stefan 是化名。先说结局。慕尼黑的 DeFi 老玩家 Stefan 在 2025 年 1 月 22 日下午签了一份 Permit2 签名,23 分钟后他的钱包里 19 种 token 余额被分多笔 transferFrom 搬空,合计约 11.4 万美元。USDC、USDT、DAI、WETH、WBTC、LDO、UNI、AAVE 等全部蒸发,旧地址只剩一点 ETH gas。

他为什么会签

那天上午他收到一封「Uniswap 治理快讯」邮件,主题「Critical: Uniswap V4 Permit2 migration required」,48 小时窗口。攻击者照着 Uniswap 官方邮件的样子,照抄字体、配色、签名样式 —— 普通老用户挑不出毛病。链接指向 uniswap-permit2[.]xyz,UI 复刻。Stefan 是 Uniswap 多年老用户,对 Permit2 概念熟悉,他没怀疑就连了钱包。签名窗口显示一个长 token 列表,他没逐项看就按了 Sign。

本可以一秒识破的硬指标

Permit2 签名里的 verifyingContract 永远是 Permit2 合约 0x000000000022D473030F116dDEE9F6B43aC78BA3,钓鱼签名也一样,不能拿来辨真假;要核的是 spender,必须是 Uniswap 官方文档列出的路由合约。Stefan 那次签名的 spender 是 0x7c...e394,官方文档里根本没有这个地址。如果他把 spender 和官方文档对一遍就能避免。

5 个 Permit2 钓鱼信号

  • 邮件 / X / Discord 让你访问「Permit2 升级」页 —— 真 Uniswap 升级不要求你迁移授权
  • spender 不是 Uniswap 官方文档列出的路由合约 —— 直接 reject
  • 签名内容是 token 数组 —— 这是 Permit2 批量授权的特征
  • 页面 URL 不是 app.uniswap.org —— 任何变体都是假
  • 授权有效期一年甚至更长、且 spender 陌生 —— 直接 reject

当天撤空

立刻上 revoke.cash 撤掉这些 token 对 Permit2 合约的授权(它也会列出 Permit2 名下的授权),再把资产转到新地址。按《私钥泄露应急 · 五步抢救流程》第三步 P0-P1 处理。Stefan 当天就在 revoke.cash 撤掉了这 19 种 token 对 Permit2 的授权——不撤的话,签名有效期内再往旧地址打币照样会被划走。旧地址以后别再放这 19 种 token:哪天又给 Permit2 授了权,还在有效期内的旧签名就可能再被用上。

Stefan 写给老用户

「我用 Uniswap 4 年,自以为熟。结果熟反而成了漏洞 —— 我对 Permit2 不陌生这事让攻击者省掉了大半说服的功夫。」

冷藏君

持币手册的作者。这本手册整理长期持币要用到的保管、防骗与应急知识,关键说法尽量对照官方文档核对。

本文案例是按常见诈骗手法编写的示意案例,其中的时间、地点、金额和人名都是示意,不对应任何真实事件或当事人。本文不构成投资建议或法律建议,仅供学习参考。如发现内容错漏或想补充新型案例,欢迎通过勘误页反馈。