Bitget App
交易“智”变
快捷买币行情交易合约理财广场更多
GalaChain 再遭攻击损失超 300 万美元,但这次不是权限的问题

GalaChain 再遭攻击损失超 300 万美元,但这次不是权限的问题

ForesightNewsForesightNews2026/08/21 07:03
作者:ForesightNews
时至今日,链层面的逻辑漏洞这种低级问题居然还会发生。


撰文:Eric,Foresight News


东八区 8 月 21 日,曾在 Decrypt 和 Blockworks 任记者的 Kate Irwin 披露了一起涉及数百万美元的黑客攻击事件,损失超过 300 万美元。



这次的受害者是两年多前因为私钥泄漏,导致黑客铸造了价值 2 亿美元的代币的 Gala Games。这场发生在 2024 年 5 月的黑客攻击事件,是由于黑客获取了高权限地址的私钥导致的。后续黑客归还了盗取的资金,Gala Games 也销毁了额外铸造的代币,可以说是比较妥善地解决了事故。


这一次的漏洞并非是管理不善,而是出在 GalaChain 的代码逻辑层面,且可以说是比较低级。或许也是因此,Gala Games 并没有公开披露这次事件。GALA 代币的价格在攻击事件发生的当天出现了下跌,但随着近几日整体行情的回暖,又涨回了被攻击前的价格。



这次事故的问题出在处理 EIP-712 结构化签名的 getPayloadToSign 函数。EIP-712 本应用类型声明告诉用户自己究竟在签什么,但真正参与哈希的,只有 types 字段列出的内容。GalaChain 的实现又允许调用方把 types 随 DTO 一起提交。如果实际数据里出现了 types 没有声明的字段,这些字段就不会被签名覆盖。链上验证的是受害者签过的那一部分,攻击者额外塞进去的收款地址和数量却也能随交易一起执行。


攻击链条因此变得非常隐蔽。受害者可能只是在 GalaSwap 做过一次 Swap、AddLiquidity 或 CollectPositionFees,留下一个有效签名。攻击者拿到签名后,并不需要破解私钥,而是把它复用到 GalaChainToken 的 TransferToken 场景,同时在 DTO 里加入未声明的 to、quantity 和 tokenInstance。由于这些字段没有进入原来的签名哈希,验签仍会恢复出受害者地址,系统便认为本人发起转账,绕开授权额度检查并转走资产。


举个生活中的实例来解释这次攻击:用户先签了一张看起来很安全的纸,比如「我同意在交易所做一次正常的交易 / 添加流动性」,攻击者在拿到这张签过字的纸后,在纸上加了一些内容,例如「我同意把我所有的币转给攻击者」。因为新加入的内容中的「字段」没在原来的声明里,系统就认为「这些内容不需要签名保护」,直接照办了。


其实在攻击发生的当天,Lookonchain 就监测到了一个新建地址接收了跨链的 GALA 和 KTA 代币,并出售为了 ETH。



据 Kate Irwin 查证,这次被盗取的 GALA 中有超过 16 亿枚来自与 Gala Games 联创兼首席执行官 Eric Schiermeyer 有关的地址。可能因为受影响的范围不大且没有波及到用户,所以 Gala 及 Eric Schiermeyer 目前均未在官方平台或社交媒体表态,没有公开表示要追究黑客责任,也没有回应 Kate Irwin 的置评请求。


虽然没有公开表态,但项目团队很快完成了漏洞的修复。这次补丁的逻辑并不复杂,就是在生成或验证签名负载前,递归检查每一个实际存在的字段是否都被相应类型声明。只要多出未签名字段,交易就会被拒绝,完整声明的合法请求不受影响。修复 PR 在 8 月 18 日创建后约 14 分钟合并。


Web3 项目常把安全叙事压缩成私钥、多签和审计三件事,但钱包里展示的结构化签名并不等于整份请求都被签名保护,合约逻辑正确也不代表 SDK、网关和链码对同一份数据有相同理解。攻击者不一定需要突破防线,只要找到两个模块对「用户同意了什么」理解不一致的缝隙,就足够完成一次盗转。


类似的攻击在 DeFi 赛道中时有发生,但发生在链本身的逻辑上非常少见。一条链在消息验证的逻辑上存在严重的漏洞可以说是一种非常低级的失误,但这也为想要提升效率的自建链敲响了一次警钟:


在提高效率之前,要把更多的资源放在安全这件更重要的事情上。

0
0

免责声明:文章中的所有内容仅代表作者的观点,与本平台无关。用户不应以本文作为投资决策的参考。

你已了解市场,是时候开始交易了!
Bitget支持一站式交易加密货币、股票和黄金等。
立即交易!

你也可能喜欢